Merge "Fix doc of PPFrame_Hash::cachedExpand"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 20 Aug 2014 06:55:21 +0000 (06:55 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 20 Aug 2014 06:55:21 +0000 (06:55 +0000)
651 files changed:
.travis.yml
RELEASE-NOTES-1.24
docs/hooks.txt
extensions/README
includes/AutoLoader.php
includes/Block.php
includes/Category.php
includes/DefaultSettings.php
includes/EditPage.php
includes/Feed.php
includes/ForkController.php
includes/FormOptions.php
includes/GlobalFunctions.php
includes/Html.php
includes/Linker.php
includes/MWTimestamp.php
includes/OutputPage.php
includes/Revision.php
includes/Setup.php
includes/StubObject.php
includes/Title.php
includes/User.php
includes/UserMailer.php
includes/WatchedItem.php
includes/WebResponse.php
includes/Xml.php
includes/actions/Action.php
includes/actions/CreditsAction.php
includes/actions/DeleteAction.php
includes/actions/EditAction.php
includes/actions/HistoryAction.php
includes/actions/InfoAction.php
includes/actions/ProtectAction.php
includes/actions/RawAction.php
includes/actions/SubmitAction.php [new file with mode: 0644]
includes/actions/UnprotectAction.php
includes/actions/WatchAction.php
includes/api/ApiBase.php
includes/api/ApiDelete.php
includes/api/ApiEditPage.php
includes/api/ApiExpandTemplates.php
includes/api/ApiFormatBase.php
includes/api/ApiFormatDbg.php
includes/api/ApiFormatDump.php
includes/api/ApiFormatTxt.php
includes/api/ApiFormatWddx.php
includes/api/ApiFormatYaml.php
includes/api/ApiHelp.php
includes/api/ApiModuleManager.php
includes/api/ApiMove.php
includes/api/ApiPageSet.php
includes/api/ApiProtect.php
includes/api/ApiQueryLangLinks.php
includes/api/ApiQuerySearch.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryStashImageInfo.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiResult.php
includes/api/ApiUpload.php
includes/api/ApiWatch.php
includes/cache/LocalisationCache.php
includes/changes/EnhancedChangesList.php
includes/changes/RecentChange.php
includes/content/AbstractContent.php
includes/content/JSONContent.php
includes/content/JSONContentHandler.php
includes/context/RequestContext.php
includes/db/DatabaseMssql.php
includes/db/DatabasePostgres.php
includes/db/DatabaseUtility.php
includes/db/IORMTable.php
includes/db/ORMTable.php
includes/deferred/SearchUpdate.php
includes/diff/DifferenceEngine.php
includes/exception/MWException.php
includes/filebackend/FileBackend.php
includes/filebackend/SwiftFileBackend.php
includes/filerepo/FileRepo.php
includes/filerepo/LocalRepo.php
includes/filerepo/RepoGroup.php
includes/filerepo/file/File.php
includes/filerepo/file/LocalFile.php
includes/gallery/ImageGalleryBase.php
includes/gallery/PackedImageGallery.php
includes/htmlform/HTMLCheckField.php
includes/htmlform/HTMLCheckMatrix.php
includes/htmlform/HTMLEditTools.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLHiddenField.php
includes/htmlform/HTMLInfoField.php
includes/htmlform/HTMLMultiSelectField.php
includes/htmlform/HTMLSelectLimitField.php [new file with mode: 0644]
includes/htmlform/HTMLTextAreaField.php
includes/htmlform/HTMLTextField.php
includes/installer/DatabaseUpdater.php
includes/installer/MssqlInstaller.php
includes/installer/PostgresInstaller.php
includes/installer/WebInstaller.php
includes/installer/WebInstallerOutput.php
includes/installer/WebInstallerPage.php
includes/installer/i18n/av.json [new file with mode: 0644]
includes/installer/i18n/da.json
includes/installer/i18n/haw.json
includes/installer/i18n/lzh.json
includes/installer/i18n/ms.json
includes/installer/i18n/no.json [deleted file]
includes/installer/i18n/pa.json
includes/installer/i18n/pl.json
includes/installer/i18n/pt.json
includes/installer/i18n/zh-hans.json
includes/installer/i18n/zh-hant.json
includes/jobqueue/JobRunner.php
includes/jobqueue/jobs/DoubleRedirectJob.php
includes/libs/MultiHttpClient.php
includes/media/BitmapMetadataHandler.php
includes/media/Exif.php
includes/media/MediaHandler.php
includes/media/SVG.php
includes/media/XCF.php
includes/media/XMP.php
includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/MemcachedClient.php
includes/objectcache/RedisBagOStuff.php
includes/objectcache/SqlBagOStuff.php
includes/objectcache/WinCacheBagOStuff.php
includes/page/Article.php
includes/page/WikiPage.php
includes/parser/CacheTime.php
includes/parser/CoreParserFunctions.php
includes/parser/CoreTagHooks.php
includes/parser/DateFormatter.php
includes/parser/LinkHolderArray.php
includes/parser/MWTidy.php
includes/parser/Parser.php
includes/parser/ParserCache.php
includes/parser/ParserDiffTest.php
includes/parser/ParserOptions.php
includes/parser/ParserOutput.php
includes/parser/Preprocessor.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/parser/StripState.php
includes/poolcounter/PoolCounterWork.php
includes/poolcounter/PoolWorkArticleView.php
includes/profiler/ProfilerSimpleUDP.php
includes/profiler/ProfilerStandard.php
includes/rcfeed/RCFeedEngine.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/resourceloader/ResourceLoaderWikiModule.php
includes/revisiondelete/RevDelFileItem.php
includes/revisiondelete/RevDelFileList.php
includes/revisiondelete/RevDelRevisionItem.php
includes/revisiondelete/RevDelRevisionList.php
includes/revisiondelete/RevisionDeleteAbstracts.php
includes/revisiondelete/RevisionDeleter.php
includes/search/SearchEngine.php
includes/search/SearchHighlighter.php
includes/search/SearchMssql.php
includes/search/SearchMySQL.php
includes/search/SearchOracle.php
includes/search/SearchResult.php
includes/search/SearchSqlite.php
includes/skins/Skin.php
includes/skins/SkinFactory.php
includes/skins/SkinFallback.php
includes/skins/SkinFallbackTemplate.php
includes/skins/SkinTemplate.php
includes/specialpage/SpecialPage.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialBlockList.php
includes/specials/SpecialChangePassword.php
includes/specials/SpecialContributions.php
includes/specials/SpecialExpandTemplates.php
includes/specials/SpecialImport.php
includes/specials/SpecialListfiles.php
includes/specials/SpecialListgrouprights.php
includes/specials/SpecialRandomInCategory.php
includes/specials/SpecialRecentchangeslinked.php
includes/specials/SpecialRedirect.php
includes/specials/SpecialResetTokens.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialSearch.php
includes/specials/SpecialUnwatchedpages.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialVersion.php
includes/templates/Usercreate.php
includes/templates/Userlogin.php
includes/upload/UploadBase.php
includes/upload/UploadFromChunks.php
includes/utils/MWCryptHKDF.php
includes/utils/UIDGenerator.php
includes/utils/ZipDirectoryReader.php
languages/Language.php
languages/i18n/ace.json
languages/i18n/aeb.json
languages/i18n/af.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/arn.json
languages/i18n/ary.json
languages/i18n/arz.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/avk.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/bjn.json
languages/i18n/bn.json
languages/i18n/bo.json
languages/i18n/bpy.json
languages/i18n/bqi.json
languages/i18n/br.json
languages/i18n/brh.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/cdo.json
languages/i18n/ce.json
languages/i18n/ceb.json
languages/i18n/ch.json
languages/i18n/ckb.json
languages/i18n/co.json
languages/i18n/cps.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.json
languages/i18n/dtp.json
languages/i18n/dv.json
languages/i18n/egl.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/ext.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fit.json
languages/i18n/fo.json
languages/i18n/fr.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/gom-latn.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/hil.json
languages/i18n/hr.json
languages/i18n/hrx.json
languages/i18n/hsb.json
languages/i18n/ht.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/id.json
languages/i18n/ie.json
languages/i18n/ig.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/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/khw.json
languages/i18n/kiu.json
languages/i18n/kk-arab.json
languages/i18n/kk-cyrl.json
languages/i18n/kk-latn.json
languages/i18n/km.json
languages/i18n/kn.json
languages/i18n/koi.json
languages/i18n/krc.json
languages/i18n/kri.json
languages/i18n/ku-latn.json
languages/i18n/kw.json
languages/i18n/ky.json
languages/i18n/lad.json
languages/i18n/lb.json
languages/i18n/lez.json
languages/i18n/lfn.json
languages/i18n/lg.json
languages/i18n/li.json
languages/i18n/lij.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/ltg.json
languages/i18n/lus.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/lzz.json
languages/i18n/map-bms.json
languages/i18n/mg.json
languages/i18n/mhr.json
languages/i18n/min.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.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/nah.json
languages/i18n/nap.json
languages/i18n/nds.json
languages/i18n/nso.json
languages/i18n/oc.json
languages/i18n/or.json
languages/i18n/os.json
languages/i18n/pa.json
languages/i18n/pam.json
languages/i18n/pcd.json
languages/i18n/pdc.json
languages/i18n/pfl.json
languages/i18n/pl.json
languages/i18n/pnb.json
languages/i18n/pnt.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/qug.json
languages/i18n/rgn.json
languages/i18n/rif.json
languages/i18n/rm.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/rue.json
languages/i18n/rup.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sat.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/sd.json
languages/i18n/sdc.json
languages/i18n/se.json
languages/i18n/sei.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/so.json
languages/i18n/sq.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/srn.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/tet.json
languages/i18n/tg-cyrl.json
languages/i18n/tg-latn.json
languages/i18n/th.json
languages/i18n/tk.json
languages/i18n/tl.json
languages/i18n/tly.json
languages/i18n/to.json
languages/i18n/tpi.json
languages/i18n/tru.json
languages/i18n/ts.json
languages/i18n/tt-cyrl.json
languages/i18n/tt-latn.json
languages/i18n/tyv.json
languages/i18n/tzm.json
languages/i18n/ug-arab.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/vmf.json
languages/i18n/vo.json
languages/i18n/vot.json
languages/i18n/vro.json
languages/i18n/wa.json
languages/i18n/war.json
languages/i18n/wo.json
languages/i18n/xal.json
languages/i18n/xmf.json
languages/i18n/yi.json
languages/i18n/yo.json
languages/i18n/yue.json
languages/i18n/zea.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesBar.php
languages/messages/MessagesKsh.php
languages/messages/MessagesLb.php
languages/messages/MessagesNds.php
languages/messages/MessagesPdc.php
languages/messages/MessagesPfl.php
languages/messages/MessagesVmf.php
languages/utils/CLDRPluralRuleConverter.php
maintenance/archives/patch-hitcounter.sql
maintenance/archives/patch-profiling.sql
maintenance/archives/upgradeLogging.php
maintenance/backupTextPass.inc
maintenance/cleanupTitles.php
maintenance/commandLine.inc
maintenance/deleteEqualMessages.php
maintenance/dictionary/mediawiki.dic
maintenance/findHooks.php
maintenance/namespaceDupes.php
maintenance/populateBacklinkNamespace.php
maintenance/purgeChangedPages.php
maintenance/purgeOldText.inc
maintenance/storage/compressOld.php
maintenance/storage/recompressTracked.php
maintenance/storage/resolveStubs.php
maintenance/syncFileBackend.php
maintenance/tables.sql
maintenance/updateCollation.php
maintenance/userOptions.inc
mw-config/config-cc.css [new file with mode: 0644]
mw-config/config.css [new file with mode: 0644]
mw-config/config.js [new file with mode: 0644]
mw-config/images/ajax-loader.gif [new file with mode: 0644]
mw-config/images/bullet.gif [new file with mode: 0644]
mw-config/images/critical-32.png [new file with mode: 0644]
mw-config/images/download-32.png [new file with mode: 0644]
mw-config/images/info-32.png [new file with mode: 0644]
mw-config/images/installer-logo.png [new file with mode: 0644]
mw-config/images/tick-32.png [new file with mode: 0644]
mw-config/images/warning-32.png [new file with mode: 0644]
profileinfo.php
resources/Resources.php
resources/lib/moment/lang/af.js [new file with mode: 0644]
resources/lib/moment/lang/ar-ma.js
resources/lib/moment/lang/ar-sa.js
resources/lib/moment/lang/ar.js
resources/lib/moment/lang/az.js
resources/lib/moment/lang/be.js [new file with mode: 0644]
resources/lib/moment/lang/bg.js
resources/lib/moment/lang/bn.js
resources/lib/moment/lang/bo.js [new file with mode: 0644]
resources/lib/moment/lang/br.js
resources/lib/moment/lang/bs.js
resources/lib/moment/lang/ca.js
resources/lib/moment/lang/cs.js
resources/lib/moment/lang/cv.js
resources/lib/moment/lang/cy.js
resources/lib/moment/lang/da.js
resources/lib/moment/lang/de-at.js
resources/lib/moment/lang/de.js
resources/lib/moment/lang/el.js
resources/lib/moment/lang/en-au.js
resources/lib/moment/lang/en-ca.js
resources/lib/moment/lang/en-gb.js
resources/lib/moment/lang/eo.js
resources/lib/moment/lang/es.js
resources/lib/moment/lang/et.js
resources/lib/moment/lang/eu.js
resources/lib/moment/lang/fa.js
resources/lib/moment/lang/fi.js
resources/lib/moment/lang/fo.js
resources/lib/moment/lang/fr-ca.js
resources/lib/moment/lang/fr.js
resources/lib/moment/lang/gl.js
resources/lib/moment/lang/he.js
resources/lib/moment/lang/hi.js
resources/lib/moment/lang/hr.js
resources/lib/moment/lang/hu.js
resources/lib/moment/lang/hy-am.js
resources/lib/moment/lang/id.js
resources/lib/moment/lang/is.js
resources/lib/moment/lang/it.js
resources/lib/moment/lang/ja.js
resources/lib/moment/lang/ka.js
resources/lib/moment/lang/km.js
resources/lib/moment/lang/ko.js
resources/lib/moment/lang/lb.js
resources/lib/moment/lang/lt.js
resources/lib/moment/lang/lv.js
resources/lib/moment/lang/mk.js
resources/lib/moment/lang/ml.js
resources/lib/moment/lang/mr.js
resources/lib/moment/lang/ms-my.js
resources/lib/moment/lang/my.js [new file with mode: 0644]
resources/lib/moment/lang/nb.js
resources/lib/moment/lang/ne.js
resources/lib/moment/lang/nl.js
resources/lib/moment/lang/nn.js
resources/lib/moment/lang/pl.js
resources/lib/moment/lang/pt-br.js
resources/lib/moment/lang/pt.js
resources/lib/moment/lang/ro.js
resources/lib/moment/lang/ru.js
resources/lib/moment/lang/sk.js
resources/lib/moment/lang/sl.js
resources/lib/moment/lang/sq.js
resources/lib/moment/lang/sr-cyrl.js
resources/lib/moment/lang/sr.js
resources/lib/moment/lang/sv.js
resources/lib/moment/lang/ta.js
resources/lib/moment/lang/th.js
resources/lib/moment/lang/tl-ph.js
resources/lib/moment/lang/tr.js
resources/lib/moment/lang/tzm-latn.js
resources/lib/moment/lang/tzm.js
resources/lib/moment/lang/uk.js
resources/lib/moment/lang/uz.js
resources/lib/moment/lang/vi.js
resources/lib/moment/lang/zh-cn.js
resources/lib/moment/lang/zh-tw.js
resources/lib/moment/moment.js
resources/lib/oojs-ui/i18n/ar.json
resources/lib/oojs-ui/i18n/arq.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/br.json
resources/lib/oojs-ui/i18n/el.json
resources/lib/oojs-ui/i18n/gu.json
resources/lib/oojs-ui/i18n/hr.json
resources/lib/oojs-ui/i18n/hu.json
resources/lib/oojs-ui/i18n/ja.json
resources/lib/oojs-ui/i18n/kn.json
resources/lib/oojs-ui/i18n/ko.json
resources/lib/oojs-ui/i18n/nb.json
resources/lib/oojs-ui/i18n/nl.json
resources/lib/oojs-ui/i18n/uk.json
resources/lib/oojs-ui/i18n/yue.json [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-agora.css
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/oojs-ui.svg.css
resources/src/jquery/jquery.suggestions.js
resources/src/jquery/jquery.tablesorter.js
resources/src/mediawiki.less/mediawiki.ui/variables.less
resources/src/mediawiki.special/mediawiki.special.import.js [new file with mode: 0644]
resources/src/mediawiki.special/mediawiki.special.search.js
resources/src/mediawiki.ui/components/inputs.less
resources/src/mediawiki/mediawiki.jqueryMsg.js
resources/src/mediawiki/mediawiki.notify.js
resources/src/mediawiki/mediawiki.toc.js
skins/README [new file with mode: 0644]
skins/common/commonContent.css
skins/common/config-cc.css [deleted file]
skins/common/config.css [deleted file]
skins/common/config.js [deleted file]
skins/common/images/Arr_.png [deleted file]
skins/common/images/Arr_l.png [deleted file]
skins/common/images/Arr_r.png [deleted file]
skins/common/images/Zoom_sans.gif [deleted file]
skins/common/images/add.png [deleted file]
skins/common/images/closewindow.png [deleted file]
skins/common/images/critical-32.png [deleted file]
skins/common/images/diffunderline.gif [deleted file]
skins/common/images/download-32.png [deleted file]
skins/common/images/info-32.png [deleted file]
skins/common/images/link_icon.gif [deleted file]
skins/common/images/magnify-clip-ltr.png [new file with mode: 0644]
skins/common/images/remove.png [deleted file]
skins/common/images/tick-32.png [deleted file]
skins/common/images/tooltip_icon.png [deleted file]
skins/common/images/warning-32.png [deleted file]
skins/common/oldshared.css
skins/common/shared.css
tests/TestsAutoLoader.php
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/ImagePageTest.php
tests/phpunit/includes/ImportTest.php
tests/phpunit/includes/OutputPageTest.php
tests/phpunit/includes/SampleTest.php
tests/phpunit/includes/TitlePermissionTest.php
tests/phpunit/includes/XmlTest.php
tests/phpunit/includes/api/ApiModuleManagerTest.php
tests/phpunit/includes/api/ApiRevisionDeleteTest.php
tests/phpunit/includes/api/ApiTestCase.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/content/ContentHandlerTest.php
tests/phpunit/includes/content/JSONContentTest.php
tests/phpunit/includes/db/DatabaseTestHelper.php
tests/phpunit/includes/media/XCFTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderModuleTest.php
tests/phpunit/includes/skins/SkinFactoryTest.php
tests/phpunit/includes/specials/SpecialSearchTest.php
tests/phpunit/maintenance/DumpTestCase.php
tests/phpunit/maintenance/fetchTextTest.php
tests/phpunit/mocks/media/MockImageHandler.php
tests/qunit/data/generateJqueryMsgData.php
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
tests/testHelpers.inc
thumb.php

index dedb4e1..6e07653 100644 (file)
@@ -10,6 +10,7 @@ language: php
 
 php:
   - hhvm-nightly
+  - 5.3
 
 services:
   - mysql
@@ -42,6 +43,7 @@ notifications:
   irc:
     channels:
       - "chat.freenode.net#mediawiki-core"
+      - "chat.freenode.net#mediawiki-feed"
     on_success: change
     on_failure: change
     skip_join: true
index e7ff835..a1f30e8 100644 (file)
@@ -47,7 +47,19 @@ production.
 * $wgCompiledFiles has been removed.
 * $wgSortSpecialPages was removed, the listing on Special:SpecialPages is
   now always sorted.
-* Users must be able to edit a page to be able to delete it.
+* $wgHTCPMulticastAddress, $wgHTCPMulticastRouting and $wgHTCPPort were removed.
+* $wgRC2UDPAddress, $wgRC2UDPInterwikiPrefix, $wgRC2UDPOmitBots, $wgRC2UDPPort
+  and $wgRC2UDPPrefix have been removed.
+* The default password type for MediaWiki has been changed from MD5 to PBKDF2.
+  Password hashes will automatically be updated as users log in. If necessary, the
+  old MD5 hashing can be restored by changing $wgPasswordDefault to 'B'. In addition,
+  there is a maintenance script wrapOldPassword.php that can wrap all passwords in
+  PBKDF2 (or the hashing algorithm of your choice) if you don't want to wait for your
+  users to log in.
+* $wgImportSources can now either be a regular array, or an associative map
+  specifying subprojects on the interwiki map of the target wiki, or a mix of
+  the two. Existing configurations will still work.
+* Users must be able to edit through a page's protection to be able to delete it.
 
 === New features in 1.24 ===
 * Added a new hook, "WhatLinksHereProps", to allow extensions to annotate
@@ -122,7 +134,7 @@ production.
   Special:PageLanguage. All pages are set to wiki language by default.
   The feature needs to be enabled with $wgPageLanguageUseDB=true and
   permission needs to be set for 'pagelang'.
-* Upgrade Moment.js to v2.7.0.
+* Upgrade Moment.js to v2.8.1.
 * (bug 67042) Added support for the HTML5 <rtc> tag for East Asian typography.
 * Upgrade Sinon.JS to 1.10.3.
 * Added the es5-shim polyfill for older or non-compliant javascript engines.
@@ -219,6 +231,7 @@ production.
   limited use and are generally inaccurate, unmaintained, and impossible to
   properly maintain. Also removed the corresponding methods from ApiBase and
   the 'APIGetPossibleErrors' and 'APIGetResultProperties' hooks.
+* Formats dbg, dump, txt, wddx, and yaml are now deprecated.
 
 === Languages updated in 1.24 ===
 
@@ -239,10 +252,12 @@ changes to languages because of Bugzilla reports.
 * Added pp_sortkey column to page_props table, so pages can be efficiently
   queried and sorted by property value (bug 58032).
   See $wgPagePropsHaveSortkey if you want to postpone the schema change.
-* BREAKING CHANGE: The Modern and Cologne Blue skins were moved out of MediaWiki
-  core to their own respective repositories. See also
-  https://www.mediawiki.org/wiki/Skin:Modern and
-  https://www.mediawiki.org/wiki/Skin:CologneBlue.
+* BREAKING CHANGE: All four built-in MediaWiki skins (Vector, MonoBook, Modern
+  and Cologne Blue) were moved out of MediaWiki core to their own respective
+  repositories. They will be installed with the release tarball, but you must
+  install them separately if installing MediaWiki from source code. A warning
+  message displayed until you do it should guide you through the process. See
+  also <https://www.mediawiki.org/wiki/Manual:Skin_configuration>.
 * BREAKING CHANGE: Skins built for MediaWiki 1.15 and earlier that do not use
   the "headelement" template key are no longer supported. Setting
   $useHeadElement = false; is no longer supported and will not cause old keys
@@ -318,6 +333,12 @@ changes to languages because of Bugzilla reports.
   JavaScript is no longer executed in this browser. The IEFixes script, which
   existed purely to provide support for MSIE versions below 7 and which was
   conditionally loaded for those browsers, was also removed.
+* Action::checkCanExecute() no longer has a return value.
+* Removed cleanupForIRC(), loadFromCurRow(), newFromCurRow(), notifyRC2UDP()
+  and sendToUDP() from RecentChange.php. (deprecated since 1.22)
+* Removed EnhancedChangesList::arrow(), sideArrow(), downArrow(), spacerArrow().
+* Removed Xml::namespaceSelector(). (deprecated since 1.19)
+* Removed WikiPage::estimateRevisionCount. (deprecated since 1.19)
 
 ==== Renamed classes ====
 * CLDRPluralRuleConverter_Expression to CLDRPluralRuleConverterExpression
index 31590ae..fc29858 100644 (file)
@@ -2368,7 +2368,7 @@ $sp: SpecialPage object, for context
 &$fields: Current HTMLForm fields
 
 'SpecialContributionsBeforeMainOutput': Before the form on Special:Contributions
-$id: User id number, only provided for backwards-compatability
+$id: User id number, only provided for backwards-compatibility
 $user: User object representing user contributions are being fetched for
 $sp: SpecialPage instance, providing context
 
index b665001..bad230e 100644 (file)
@@ -1,23 +1,19 @@
-Extensions (such as the hieroglyphic module WikiHiero) are distributed
-separately. Drop them into this extensions directory and enable as
-per the extension's directions.
+Extensions are distributed separately. Drop them into this directory and enable
+as per the extension's installation instructions.
 
-You can find a list of extensions and documentation on the MediaWiki website:
-    https://www.mediawiki.org/wiki/Category:Extensions
+You can find a list of extensions and documentation at
+<https://www.mediawiki.org/wiki/Category:Extensions>.
 
 
-If you are a developer, you want to fetch the extension tree in another
+If you are a developer, you might want to fetch the extension tree in another
 directory and make a symbolic link:
 
- mediawiki/extensions$ ln -s ../../extensions-trunk/FooBarExt
+ mediawiki/extensions$ ln -s ../../extensions-trunk/FooBar
 
 Most extensions are available through Git:
-    https://gerrit.wikimedia.org/r/#/admin/projects/
+    https://gerrit.wikimedia.org/r/#/admin/projects/?filter=mediawiki%252Fextensions%252F
     https://git.wikimedia.org/project/mediawiki
 
-Old extensions are on Subversion:
-    https://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/
-
 
 Please note that under POSIX systems (Linux...), parent of a symbolic path
 refers to the link source, NOT to the target! You should check the env
index c535ca0..f7f4c59 100644 (file)
@@ -100,6 +100,7 @@ $wgAutoloadLocalClasses = array(
        'HTMLRadioField' => 'includes/htmlform/HTMLRadioField.php',
        'HTMLSelectAndOtherField' => 'includes/htmlform/HTMLSelectAndOtherField.php',
        'HTMLSelectField' => 'includes/htmlform/HTMLSelectField.php',
+       'HTMLSelectLimitField' => 'includes/htmlform/HTMLSelectLimitField.php',
        'HTMLSelectOrOtherField' => 'includes/htmlform/HTMLSelectOrOtherField.php',
        'HTMLSubmitField' => 'includes/htmlform/HTMLSubmitField.php',
        'HTMLTextAreaField' => 'includes/htmlform/HTMLTextAreaField.php',
@@ -208,7 +209,7 @@ $wgAutoloadLocalClasses = array(
        'RevertAction' => 'includes/actions/RevertAction.php',
        'RevisiondeleteAction' => 'includes/actions/RevisiondeleteAction.php',
        'RollbackAction' => 'includes/actions/RollbackAction.php',
-       'SubmitAction' => 'includes/actions/EditAction.php',
+       'SubmitAction' => 'includes/actions/SubmitAction.php',
        'UnprotectAction' => 'includes/actions/UnprotectAction.php',
        'UnwatchAction' => 'includes/actions/UnwatchAction.php',
        'ViewAction' => 'includes/actions/ViewAction.php',
@@ -970,7 +971,6 @@ $wgAutoloadLocalClasses = array(
        'EmailInvalidation' => 'includes/specials/SpecialConfirmemail.php',
        'FewestrevisionsPage' => 'includes/specials/SpecialFewestrevisions.php',
        'FileDuplicateSearchPage' => 'includes/specials/SpecialFileDuplicateSearch.php',
-       'HTMLBlockedUsersItemSelect' => 'includes/specials/SpecialBlockList.php',
        'ImageListPager' => 'includes/specials/SpecialListfiles.php',
        'ImportReporter' => 'includes/specials/SpecialImport.php',
        'LinkSearchPage' => 'includes/specials/SpecialLinkSearch.php',
index 45bae28..88534c0 100644 (file)
@@ -80,6 +80,20 @@ class Block {
        /**
         * @todo FIXME: Don't know what the best format to have for this constructor
         *   is, but fourteen optional parameters certainly isn't it.
+        * @param string $address
+        * @param int $user
+        * @param int $by
+        * @param string $reason
+        * @param mixed $timestamp
+        * @param int $auto
+        * @param string $expiry
+        * @param int $anonOnly
+        * @param int $createAccount
+        * @param int $enableAutoblock
+        * @param int $hideName
+        * @param int $blockEmail
+        * @param int $allowUsertalk
+        * @param string $byText
         */
        function __construct( $address = '', $user = 0, $by = 0, $reason = '',
                $timestamp = 0, $auto = 0, $expiry = '', $anonOnly = 0, $createAccount = 0, $enableAutoblock = 0,
@@ -1105,11 +1119,11 @@ class Block {
         *  - If there are multiple exact or range blocks at the same level, the one chosen
         *    is random
         *
+        * @param array $blocks Array of blocks
         * @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,
         *        local-squid, ...)
-        * @param array $block Array of blocks
         * @return Block|null The "best" block from the list
         */
        public static function chooseBlock( array $blocks, array $ipChain ) {
index 7bab464..322b053 100644 (file)
@@ -291,6 +291,7 @@ class Category {
 
        /**
         * Generic accessor
+        * @param string $key
         * @return bool
         */
        private function getX( $key ) {
index 80b8e52..fd26cfe 100644 (file)
@@ -2447,42 +2447,6 @@ $wgSquidPurgeUseHostHeader = true;
  */
 $wgHTCPRouting = array();
 
-/**
- * @deprecated since 1.22, please use $wgHTCPRouting instead.
- *
- * Whenever this is set and $wgHTCPRouting evaluates to false, $wgHTCPRouting
- * will be set to this value.
- * This is merely for back compatibility.
- *
- * @since 1.20
- */
-$wgHTCPMulticastRouting = null;
-
-/**
- * HTCP multicast address. Set this to a multicast IP address to enable HTCP.
- *
- * Note that MediaWiki uses the old non-RFC compliant HTCP format, which was
- * present in the earliest Squid implementations of the protocol.
- *
- * This setting is DEPRECATED in favor of $wgHTCPRouting , and kept for
- * backwards compatibility only. If $wgHTCPRouting is set, this setting is
- * ignored. If $wgHTCPRouting is not set and this setting is, it is used to
- * populate $wgHTCPRouting.
- *
- * @deprecated since 1.20 in favor of $wgHTCPMulticastRouting and since 1.22 in
- * favor of $wgHTCPRouting.
- */
-$wgHTCPMulticastAddress = false;
-
-/**
- * HTCP multicast port.
- * @deprecated since 1.20 in favor of $wgHTCPMulticastRouting and since 1.22 in
- * favor of $wgHTCPRouting.
- *
- * @see $wgHTCPMulticastAddress
- */
-$wgHTCPPort = 4827;
-
 /**
  * HTCP multicast TTL.
  * @see $wgHTCPRouting
@@ -2887,6 +2851,23 @@ $wgHtml5 = true;
  */
 $wgHtml5Version = null;
 
+/**
+ * Temporary variable that allows HTMLForms to be rendered as tables.
+ * Table based layouts cause various issues when designing for mobile.
+ * This global allows skins or extensions a means to force non-table based rendering.
+ * Setting to false forces form components to always render as div elements.
+ * @since 1.24
+ */
+$wgHTMLFormAllowTableFormat = true;
+
+/**
+ * Temporary variable that applies MediaWiki UI wherever it can be supported.
+ * Temporary variable that should be removed when mediawiki ui is more
+ * stable and change has been communicated.
+ * @since 1.24
+ */
+$wgUseMediaWikiUIEverywhere = false;
+
 /**
  * Enabled RDFa attributes for use in wikitext.
  * NOTE: Interaction with HTML5 is somewhat underspecified.
@@ -4134,7 +4115,7 @@ $wgInvalidPasswordReset = true;
  *
  * @since 1.24
  */
-$wgPasswordDefault = 'B';
+$wgPasswordDefault = 'pbkdf2';
 
 /**
  * Configuration for built-in password types. Maps the password type
@@ -5311,9 +5292,9 @@ $wgUDPProfilerPort = '3811';
 
 /**
  * Format string for the UDP profiler. The UDP profiler invokes sprintf() with
- * (profile id, count, cpu, cpu_sq, real, real_sq, entry name) as arguments.
- * You can use sprintf's argument numbering/swapping capability to repeat,
- * re-order or omit fields.
+ * (profile id, count, cpu, cpu_sq, real, real_sq, entry name, memory) as
+ * arguments. You can use sprintf's argument numbering/swapping capability to
+ * repeat, re-order or omit fields.
  *
  * @see $wgStatsFormatString
  * @since 1.22
@@ -5677,9 +5658,9 @@ $wgGitBin = '/usr/bin/git';
  */
 $wgGitRepositoryViewers = array(
        'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
-               'https://git.wikimedia.org/commit/%r/%H',
+               'https://git.wikimedia.org/tree/%r/%H',
        'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
-               'https://git.wikimedia.org/commit/%r/%H',
+               'https://git.wikimedia.org/tree/%r/%H',
 );
 
 /** @} */ # End of maintenance }
@@ -5717,48 +5698,6 @@ $wgRCLinkLimits = array( 50, 100, 250, 500 );
  */
 $wgRCLinkDays = array( 1, 3, 7, 14, 30 );
 
-/**
- * Send recent changes updates via UDP. The updates will be formatted for IRC.
- * Set this to the IP address of the receiver.
- *
- * @deprecated since 1.22, use $wgRCFeeds
- */
-$wgRC2UDPAddress = false;
-
-/**
- * Port number for RC updates
- *
- * @deprecated since 1.22, use $wgRCFeeds
- */
-$wgRC2UDPPort = false;
-
-/**
- * Prefix to prepend to each UDP packet.
- * This can be used to identify the wiki. A script is available called
- * mxircecho.py which listens on a UDP port, and uses a prefix ending in a
- * tab to identify the IRC channel to send the log line to.
- *
- * @deprecated since 1.22, use $wgRCFeeds
- */
-$wgRC2UDPPrefix = '';
-
-/**
- * If this is set to true, the first entry in the $wgLocalInterwikis array (or
- * the value of $wgLocalInterwiki, if set) will be prepended to links in the IRC
- * feed. If this is set to a string, that string will be used as the prefix.
- *
- * @deprecated since 1.22, use $wgRCFeeds
- */
-$wgRC2UDPInterwikiPrefix = false;
-
-/**
- * Set to true to omit "bot" edits (by users with the bot permission) from the
- * UDP feed.
- *
- * @deprecated since 1.22, use $wgRCFeeds
- */
-$wgRC2UDPOmitBots = false;
-
 /**
  * Destinations to which notifications about recent changes
  * should be sent.
@@ -5786,9 +5725,6 @@ $wgRC2UDPOmitBots = false;
  *  The JSON-specific options are:
  *   * 'channel' -- if set, the 'channel' parameter is also set in JSON values.
  *
- *  To ensure backwards-compatibility, whenever $wgRC2UDPAddress is set, a
- *  'default' feed will be created reusing the deprecated $wgRC2UDP* variables.
- *
  * @example $wgRCFeeds['example'] = array(
  *             'formatter' => 'JSONRCFeedFormatter',
  *             'uri' => "udp://localhost:1336",
@@ -6059,6 +5995,17 @@ $wgShowCreditsIfMax = true;
  * Special:Import (for sysops). Since complete page history can be imported,
  * these should be 'trusted'.
  *
+ * This can either be a regular array, or an associative map specifying
+ * subprojects on the interwiki map of the target wiki, or a mix of the two,
+ * e.g.
+ * @code
+ *     $wgImportSources = array(
+ *         'wikipedia' => array( 'cs', 'en', 'fr', 'zh' ),
+ *         'wikispecies',
+ *         'wikia' => array( 'animanga', 'brickipedia', 'desserts' ),
+ *     );
+ * @endcode
+ *
  * If a user has the 'import' permission but not the 'importupload' permission,
  * they will only be able to run imports through this transwiki interface.
  */
@@ -7311,7 +7258,7 @@ $wgPageLanguageUseDB = false;
  * @var bool
  * @since 1.24
  */
-$wgUseLinkNamespaceDBFields = false;
+$wgUseLinkNamespaceDBFields = true;
 
 /**
  * For really cool vim folding this needs to be at the end:
index dafbbe3..145eae2 100644 (file)
@@ -1468,9 +1468,8 @@ class EditPage {
                        $cleanSummary = $wgParser->stripSectionName( $this->summary );
                        return wfMessage( 'newsectionsummary' )
                                ->rawParams( $cleanSummary )->inContentLanguage()->text();
-               } else {
-                       return $this->summary;
                }
+               return $this->summary;
        }
 
        /**
@@ -3184,7 +3183,7 @@ HTML
        }
 
        protected function showStandardInputs( &$tabindex = 2 ) {
-               global $wgOut;
+               global $wgOut, $wgUseMediaWikiUIEverywhere;
                $wgOut->addHTML( "<div class='editOptions'>\n" );
 
                if ( $this->section != 'new' ) {
@@ -3212,8 +3211,14 @@ HTML
 
                $message = wfMessage( 'edithelppage' )->inContentLanguage()->text();
                $edithelpurl = Skin::makeInternalOrExternalUrl( $message );
-               $edithelp = '<a target="helpwindow" href="' . $edithelpurl . '">' .
-                       wfMessage( 'edithelp' )->escaped() . '</a> ' .
+               $attrs = array(
+                       'target' => 'helpwindow',
+                       'href' => $edithelpurl,
+               );
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       $attrs['class'] = 'mw-ui-button mw-ui-quiet';
+               }
+               $edithelp = Html::element( 'a', $attrs, wfMessage( 'edithelp' )->text() ) .
                        wfMessage( 'newwindow' )->parse();
 
                $wgOut->addHTML( "      <span class='cancelLink'>{$cancel}</span>\n" );
@@ -3255,15 +3260,20 @@ HTML
         * @return string
         */
        public function getCancelLink() {
+               global $wgUseMediaWikiUIEverywhere;
                $cancelParams = array();
                if ( !$this->isConflict && $this->oldid > 0 ) {
                        $cancelParams['oldid'] = $this->oldid;
                }
+               $attrs = array( 'id' => 'mw-editform-cancel' );
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       $attrs['class'] = 'mw-ui-button mw-ui-quiet';
+               }
 
                return Linker::linkKnown(
                        $this->getContextTitle(),
                        wfMessage( 'cancel' )->parse(),
-                       array( 'id' => 'mw-editform-cancel' ),
+                       $attrs,
                        $cancelParams
                );
        }
@@ -3691,7 +3701,7 @@ HTML
         * @return array
         */
        public function getCheckboxes( &$tabindex, $checked ) {
-               global $wgUser;
+               global $wgUser, $wgUseMediaWikiUIEverywhere;
 
                $checkboxes = array();
 
@@ -3705,11 +3715,19 @@ HTML
                                        'accesskey' => wfMessage( 'accesskey-minoredit' )->text(),
                                        'id' => 'wpMinoredit',
                                );
-                               $checkboxes['minor'] =
+                               $minorEditHtml =
                                        Xml::check( 'wpMinoredit', $checked['minor'], $attribs ) .
                                        "&#160;<label for='wpMinoredit' id='mw-editpage-minoredit'" .
                                        Xml::expandAttributes( array( 'title' => Linker::titleAttrib( 'minoredit', 'withaccess' ) ) ) .
                                        ">{$minorLabel}</label>";
+
+                               if ( $wgUseMediaWikiUIEverywhere ) {
+                                       $checkboxes['minor'] = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+                                               $minorEditHtml .
+                                       Html::closeElement( 'div' );
+                               } else {
+                                       $checkboxes['minor'] = $minorEditHtml;
+                               }
                        }
                }
 
@@ -3721,11 +3739,18 @@ HTML
                                'accesskey' => wfMessage( 'accesskey-watch' )->text(),
                                'id' => 'wpWatchthis',
                        );
-                       $checkboxes['watch'] =
+                       $watchThisHtml =
                                Xml::check( 'wpWatchthis', $checked['watch'], $attribs ) .
                                "&#160;<label for='wpWatchthis' id='mw-editpage-watch'" .
                                Xml::expandAttributes( array( 'title' => Linker::titleAttrib( 'watch', 'withaccess' ) ) ) .
                                ">{$watchLabel}</label>";
+                       if ( $wgUseMediaWikiUIEverywhere ) {
+                               $checkboxes['watch'] = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+                                       $watchThisHtml .
+                                       Html::closeElement( 'div' );
+                       } else {
+                               $checkboxes['watch'] = $watchThisHtml;
+                       }
                }
                wfRunHooks( 'EditPageBeforeEditChecks', array( &$this, &$checkboxes, &$tabindex ) );
                return $checkboxes;
@@ -3740,6 +3765,8 @@ HTML
         * @return array
         */
        public function getEditButtons( &$tabindex ) {
+               global $wgUseMediaWikiUIEverywhere;
+
                $buttons = array();
 
                $attribs = array(
@@ -3749,6 +3776,9 @@ HTML
                        'tabindex' => ++$tabindex,
                        'value' => wfMessage( 'savearticle' )->text(),
                ) + Linker::tooltipAndAccesskeyAttribs( 'save' );
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       $attribs['class'] = 'mw-ui-button mw-ui-constructive';
+               }
                $buttons['save'] = Xml::element( 'input', $attribs, '' );
 
                ++$tabindex; // use the same for preview and live preview
@@ -3759,6 +3789,9 @@ HTML
                        'tabindex' => $tabindex,
                        'value' => wfMessage( 'showpreview' )->text(),
                ) + Linker::tooltipAndAccesskeyAttribs( 'preview' );
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       $attribs['class'] = 'mw-ui-button mw-ui-progressive';
+               }
                $buttons['preview'] = Xml::element( 'input', $attribs, '' );
                $buttons['live'] = '';
 
@@ -3769,6 +3802,9 @@ HTML
                        'tabindex' => ++$tabindex,
                        'value' => wfMessage( 'showdiff' )->text(),
                ) + Linker::tooltipAndAccesskeyAttribs( 'diff' );
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       $attribs['class'] = 'mw-ui-button mw-ui-progressive';
+               }
                $buttons['diff'] = Xml::element( 'input', $attribs, '' );
 
                wfRunHooks( 'EditPageBeforeEditButtons', array( &$this, &$buttons, &$tabindex ) );
index 58f3ebd..60e623b 100644 (file)
@@ -348,6 +348,7 @@ class RSSFeed extends ChannelFeed {
 class AtomFeed extends ChannelFeed {
        /**
         * @todo document
+        * @param string|int $ts
         * @return string
         */
        function formatTime( $ts ) {
index 0582230..c1765e2 100644 (file)
@@ -160,6 +160,7 @@ class ForkController {
        /**
         * Fork a number of worker processes.
         *
+        * @param int $numProcs
         * @return string
         */
        protected function forkWorkers( $numProcs ) {
index 079267a..c91c336 100644 (file)
@@ -375,6 +375,7 @@ class FormOptions implements ArrayAccess {
        /* @{ */
        /**
         * Whether the option exists.
+        * @param string $name
         * @return bool
         */
        public function offsetExists( $name ) {
@@ -383,6 +384,7 @@ class FormOptions implements ArrayAccess {
 
        /**
         * Retrieve an option value.
+        * @param string $name
         * @return mixed
         */
        public function offsetGet( $name ) {
@@ -391,6 +393,8 @@ class FormOptions implements ArrayAccess {
 
        /**
         * Set an option to given value.
+        * @param string $name
+        * @param mixed $value
         */
        public function offsetSet( $name, $value ) {
                $this->setValue( $name, $value );
@@ -398,6 +402,7 @@ class FormOptions implements ArrayAccess {
 
        /**
         * Delete the option.
+        * @param string $name
         */
        public function offsetUnset( $name ) {
                $this->delete( $name );
index 4c2b772..805ba9e 100644 (file)
@@ -88,6 +88,7 @@ if ( !function_exists( 'mb_strrpos' ) ) {
 if ( !function_exists( 'gzdecode' ) ) {
        /**
         * @codeCoverageIgnore
+        * @param string $data
         * @return string
         */
        function gzdecode( $data ) {
index 4192507..9e7f5c4 100644 (file)
@@ -101,6 +101,35 @@ class Html {
                'itemscope',
        );
 
+       /**
+        * Modifies a set of attributes meant for text input elements
+        * and apply a set of default attributes.
+        * Removes size attribute when $wgUseMediaWikiUIEverywhere enabled.
+        * @param array $attrs An attribute array.
+        * @return array $attrs A modified attribute array
+        */
+       public static function getTextInputAttributes( $attrs ) {
+               global $wgUseMediaWikiUIEverywhere;
+               if ( !$attrs ) {
+                       $attrs = array();
+               }
+               if ( isset( $attrs['class'] ) ) {
+                       if ( is_array( $attrs['class'] ) ) {
+                               $attrs['class'][] = 'mw-ui-input';
+                       } else {
+                               $attrs['class'] .= ' mw-ui-input';
+                       }
+               } else {
+                       $attrs['class'] = 'mw-ui-input';
+               }
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       // Note that size can effect the desired width rendering of mw-ui-input elements
+                       // so it is removed. Left intact when mediawiki ui not enabled.
+                       unset( $attrs['size'] );
+               }
+               return $attrs;
+       }
+
        /**
         * Returns an HTML element in a string.  The major advantage here over
         * manually typing out the HTML is that it will escape all attribute
@@ -632,7 +661,9 @@ class Html {
                $attribs['type'] = $type;
                $attribs['value'] = $value;
                $attribs['name'] = $name;
-
+               if ( in_array( $type, array( 'text', 'search', 'email', 'password', 'number' ) ) ) {
+                       $attribs = Html::getTextInputAttributes( $attribs );
+               }
                return self::element( 'input', $attribs );
        }
 
@@ -731,7 +762,7 @@ class Html {
                } else {
                        $spacedValue = $value;
                }
-               return self::element( 'textarea', $attribs, $spacedValue );
+               return self::element( 'textarea', Html::getTextInputAttributes( $attribs ), $spacedValue );
        }
 
        /**
index 9f578a9..05caeaa 100644 (file)
@@ -702,6 +702,7 @@ class Linker {
         * frame parameters supplied by the Parser.
         * @param array $frameParams The frame parameters
         * @param string $query An optional query string to add to description page links
+        * @param Parser|null $parser
         * @return array
         */
        private static function getImageLinkMTOParams( $frameParams, $query = '', $parser = null ) {
@@ -770,7 +771,6 @@ class Linker {
        public static function makeThumbLink2( Title $title, $file, $frameParams = array(),
                $handlerParams = array(), $time = false, $query = ""
        ) {
-               global $wgStylePath, $wgContLang;
                $exists = $file && $file->exists();
 
                # Shortcuts
@@ -879,12 +879,7 @@ class Linker {
                                                'href' => $url,
                                                'class' => 'internal',
                                                'title' => wfMessage( 'thumbnail-more' )->text() ),
-                                               Html::element( 'img', array(
-                                                       'src' => $wgStylePath . '/common/images/magnify-clip'
-                                                               . ( $wgContLang->isRTL() ? '-rtl' : '' ) . '.png',
-                                                       'width' => 15,
-                                                       'height' => 11,
-                                                       'alt' => "" ) ) ) );
+                                               "" ) );
                        }
                }
                $s .= '  <div class="thumbcaption">' . $zoomIcon . $fp['caption'] . "</div></div></div>";
@@ -2202,7 +2197,7 @@ class Linker {
         *
         * @param User $user
         * @param Revision $rev
-        * @param Revision $title
+        * @param Title $title
         * @return string HTML fragment
         */
        public static function getRevDeleteLink( User $user, Revision $rev, Title $title ) {
index bc59588..26f5e54 100644 (file)
@@ -238,7 +238,6 @@ class MWTimestamp {
         * @since 1.22
         *
         * @param User $user User to take preferences from
-        * @param[out] MWTimestamp $ts Timestamp to adjust
         * @return DateInterval Offset that was applied to the timestamp
         */
        public function offsetForUser( User $user ) {
index 2110393..6ea4953 100644 (file)
@@ -311,6 +311,7 @@ class OutputPage extends ContextSource {
         * Constructor for OutputPage. This should not be called directly.
         * Instead a new RequestContext should be created and it will implicitly create
         * a OutputPage tied to that context.
+        * @param IContextSource|null $context
         */
        function __construct( IContextSource $context = null ) {
                if ( $context === null ) {
@@ -388,6 +389,7 @@ class OutputPage extends ContextSource {
        /**
         * Set the URL to be used for the <link rel=canonical>. This should be used
         * in preference to addLink(), to avoid duplicate link tags.
+        * @param string $url
         */
        function setCanonicalUrl( $url ) {
                $this->mCanonicalUrl = $url;
@@ -2797,9 +2799,7 @@ $templates
                                                );
                                        } else {
                                                $links['html'] .= Html::inlineScript(
-                                                       ResourceLoader::makeLoaderConditionalScript(
-                                                               $resourceLoader->makeModuleResponse( $context, $grpModules )
-                                                       )
+                                                       $resourceLoader->makeModuleResponse( $context, $grpModules )
                                                );
                                        }
                                        $links['html'] .= "\n";
index a6148c7..cad9f2c 100644 (file)
@@ -1654,9 +1654,13 @@ class Revision implements IDBAccessObject {
         *                               self::DELETED_COMMENT = File::DELETED_COMMENT,
         *                               self::DELETED_USER = File::DELETED_USER
         * @param User|null $user User object to check, or null to use $wgUser
+        * @param Title|null $title A Title object to check for per-page restrictions on,
+        *                          instead of just plain userrights
         * @return bool
         */
-       public static function userCanBitfield( $bitfield, $field, User $user = null ) {
+       public static function userCanBitfield( $bitfield, $field, User $user = null ,
+               Title $title = null
+       ) {
                if ( $bitfield & $field ) { // aspect is deleted
                        if ( $user === null ) {
                                global $wgUser;
@@ -1670,8 +1674,19 @@ class Revision implements IDBAccessObject {
                                $permissions = array( 'deletedhistory' );
                        }
                        $permissionlist = implode( ', ', $permissions );
-                       wfDebug( "Checking for $permissionlist due to $field match on $bitfield\n" );
-                       return call_user_func_array( array( $user, 'isAllowedAny' ), $permissions );
+                       if ( $title === null ) {
+                               wfDebug( "Checking for $permissionlist due to $field match on $bitfield\n" );
+                               return call_user_func_array( array( $user, 'isAllowedAny' ), $permissions );
+                       } else {
+                               $text = $title->getPrefixedText();
+                               wfDebug( "Checking for $permissionlist on $text due to $field match on $bitfield\n" );
+                               foreach( $permissions as $perm ) {
+                                       if ( $title->userCan( $perm, $user ) ) {
+                                               return true;
+                                       }
+                               }
+                               return false;
+                       }
                } else {
                        return true;
                }
index 935fa15..0c5cf92 100644 (file)
@@ -263,8 +263,21 @@ if ( $wgSkipSkin ) {
        $wgSkipSkins[] = $wgSkipSkin;
 }
 
-// Register a hidden "fallback" skin
-$wgValidSkinNames['fallback'] = 'Fallback'; // SkinFallback
+// Register skins
+// Use a closure to avoid leaking into global state
+call_user_func( function() use ( $wgValidSkinNames ) {
+       $factory = SkinFactory::getDefaultInstance();
+       foreach ( $wgValidSkinNames as $name => $skin ) {
+               $factory->register( $name, $skin, function() use ( $name, $skin ) {
+                       $class = "Skin$skin";
+                       return new $class( $name );
+               } );
+       }
+       // Register a hidden "fallback" skin
+       $factory->register( 'fallback', 'Fallback', function() {
+               return new SkinFallback;
+       } );
+} );
 $wgSkipSkins[] = 'fallback';
 
 if ( $wgLocalInterwiki ) {
@@ -392,13 +405,14 @@ if ( $wgCookieSecure === 'detect' ) {
        $wgCookieSecure = ( WebRequest::detectProtocol() === 'https' );
 }
 
-if ( $wgRC2UDPAddress ) {
-       $wgRCFeeds['default'] = array(
-               'formatter' => 'IRCColourfulRCFeedFormatter',
-               'uri' => "udp://$wgRC2UDPAddress:$wgRC2UDPPort/$wgRC2UDPPrefix",
-               'add_interwiki_prefix' => &$wgRC2UDPInterwikiPrefix,
-               'omit_bots' => &$wgRC2UDPOmitBots,
-       );
+// Back compatibility for $wgRateLimitLog deprecated with 1.23
+if ( $wgRateLimitLog && !array_key_exists( 'ratelimit', $wgDebugLogGroups ) ) {
+       $wgDebugLogGroups['ratelimit'] = $wgRateLimitLog;
+}
+
+if ( $wgProfileOnly ) {
+       $wgDebugLogGroups['profileoutput'] = $wgDebugLogFile;
+       $wgDebugLogFile = '';
 }
 
 wfProfileOut( $fname . '-defaults' );
@@ -465,33 +479,6 @@ if ( $wgTmpDirectory === false ) {
        wfProfileOut( $fname . '-tempDir' );
 }
 
-// $wgHTCPMulticastRouting got renamed to $wgHTCPRouting in MediaWiki 1.22
-// ensure back compatibility.
-if ( !$wgHTCPRouting && $wgHTCPMulticastRouting ) {
-       $wgHTCPRouting = $wgHTCPMulticastRouting;
-}
-
-// Initialize $wgHTCPRouting from backwards-compatible settings that
-// comes from pre 1.20 version.
-if ( !$wgHTCPRouting && $wgHTCPMulticastAddress ) {
-       $wgHTCPRouting = array(
-               '' => array(
-                       'host' => $wgHTCPMulticastAddress,
-                       'port' => $wgHTCPPort,
-               )
-       );
-}
-
-// Back compatibility for $wgRateLimitLog deprecated with 1.23
-if ( $wgRateLimitLog && !array_key_exists( 'ratelimit', $wgDebugLogGroups ) ) {
-       $wgDebugLogGroups['ratelimit'] = $wgRateLimitLog;
-}
-
-if ( $wgProfileOnly ) {
-       $wgDebugLogGroups['profileoutput'] = $wgDebugLogFile;
-       $wgDebugLogFile = '';
-}
-
 wfProfileOut( $fname . '-defaults2' );
 wfProfileIn( $fname . '-misc1' );
 
@@ -554,15 +541,15 @@ wfRunHooks( 'SetupAfterCache' );
 
 wfProfileIn( $fname . '-session' );
 
-// If session.auto_start is there, we can't touch session name
-if ( !wfIniGetBool( 'session.auto_start' ) ) {
-       session_name( $wgSessionName ? $wgSessionName : $wgCookiePrefix . '_session' );
-}
+if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) {
+       // If session.auto_start is there, we can't touch session name
+       if ( !wfIniGetBool( 'session.auto_start' ) ) {
+               session_name( $wgSessionName ? $wgSessionName : $wgCookiePrefix . '_session' );
+       }
 
-if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode &&
-       ( $wgRequest->checkSessionCookie() || isset( $_COOKIE[$wgCookiePrefix . 'Token'] ) )
-) {
-       wfSetupSession();
+       if ( $wgRequest->checkSessionCookie() || isset( $_COOKIE[$wgCookiePrefix . 'Token'] ) ) {
+               wfSetupSession();
+       }
 }
 
 wfProfileOut( $fname . '-session' );
index 73952da..8878660 100644 (file)
@@ -58,7 +58,7 @@ class StubObject {
         * @param string $class Name of the class of the real object.
         * @param array $params Parameters to pass to constructor of the real object.
         */
-       function __construct( $global = null, $class = null, $params = array() ) {
+       public function __construct( $global = null, $class = null, $params = array() ) {
                $this->global = $global;
                $this->class = $class;
                $this->params = $params;
@@ -71,7 +71,7 @@ class StubObject {
         * @param object $obj Object to check.
         * @return bool True if $obj is not an instance of StubObject class.
         */
-       static function isRealObject( $obj ) {
+       public static function isRealObject( $obj ) {
                return is_object( $obj ) && !$obj instanceof StubObject;
        }
 
@@ -83,7 +83,7 @@ class StubObject {
         * @param object $obj Object to check.
         * @return void
         */
-       static function unstub( &$obj ) {
+       public static function unstub( &$obj ) {
                if ( $obj instanceof StubObject ) {
                        $obj = $obj->_unstub( 'unstub', 3 );
                }
@@ -100,7 +100,7 @@ class StubObject {
         * @param array $args Arguments
         * @return mixed
         */
-       function _call( $name, $args ) {
+       public function _call( $name, $args ) {
                $this->_unstub( $name, 5 );
                return call_user_func_array( array( $GLOBALS[$this->global], $name ), $args );
        }
@@ -109,7 +109,7 @@ class StubObject {
         * Create a new object to replace this stub object.
         * @return object
         */
-       function _newObject() {
+       public function _newObject() {
                return MWFunction::newObj( $this->class, $this->params );
        }
 
@@ -121,7 +121,7 @@ class StubObject {
         * @param array $args Arguments
         * @return mixed
         */
-       function __call( $name, $args ) {
+       public function __call( $name, $args ) {
                return $this->_call( $name, $args );
        }
 
@@ -137,7 +137,7 @@ class StubObject {
         * @return object The unstubbed version of itself
         * @throws MWException
         */
-       function _unstub( $name = '_unstub', $level = 2 ) {
+       public function _unstub( $name = '_unstub', $level = 2 ) {
                static $recursionLevel = 0;
 
                if ( !$GLOBALS[$this->global] instanceof StubObject ) {
@@ -170,18 +170,18 @@ class StubObject {
  */
 class StubUserLang extends StubObject {
 
-       function __construct() {
+       public function __construct() {
                parent::__construct( 'wgLang' );
        }
 
-       function __call( $name, $args ) {
+       public function __call( $name, $args ) {
                return $this->_call( $name, $args );
        }
 
        /**
         * @return Language
         */
-       function _newObject() {
+       public function _newObject() {
                return RequestContext::getMain()->getLanguage();
        }
 }
index a1b2352..15ff216 100644 (file)
@@ -158,6 +158,9 @@ class Title {
 
        /** @var TitleValue A corresponding TitleValue object */
        private $mTitleValue = null;
+
+       /** @var bool Would deleting this page be a big deletion? */
+       private $mIsBigDeletion = null;
        // @}
 
        /**
@@ -2075,7 +2078,7 @@ class Title {
                        $ns = $this->mNamespace == NS_MAIN ?
                                wfMessage( 'nstab-main' )->text() : $this->getNsText();
                        $errors[] = $this->mNamespace == NS_MEDIAWIKI ?
-                               array( 'protectedinterface' ) : array( 'namespaceprotected', $ns );
+                               array( 'protectedinterface', $action ) : array( 'namespaceprotected', $ns, $action );
                }
 
                return $errors;
@@ -2099,15 +2102,15 @@ class Title {
                if ( $action != 'patrol' && !$user->isAllowed( 'editusercssjs' ) ) {
                        if ( preg_match( '/^' . preg_quote( $user->getName(), '/' ) . '\//', $this->mTextform ) ) {
                                if ( $this->isCssSubpage() && !$user->isAllowedAny( 'editmyusercss', 'editusercss' ) ) {
-                                       $errors[] = array( 'mycustomcssprotected' );
+                                       $errors[] = array( 'mycustomcssprotected', $action );
                                } elseif ( $this->isJsSubpage() && !$user->isAllowedAny( 'editmyuserjs', 'edituserjs' ) ) {
-                                       $errors[] = array( 'mycustomjsprotected' );
+                                       $errors[] = array( 'mycustomjsprotected', $action );
                                }
                        } else {
                                if ( $this->isCssSubpage() && !$user->isAllowed( 'editusercss' ) ) {
-                                       $errors[] = array( 'customcssprotected' );
+                                       $errors[] = array( 'customcssprotected', $action );
                                } elseif ( $this->isJsSubpage() && !$user->isAllowed( 'edituserjs' ) ) {
-                                       $errors[] = array( 'customjsprotected' );
+                                       $errors[] = array( 'customjsprotected', $action );
                                }
                        }
                }
@@ -2142,9 +2145,9 @@ class Title {
                                continue;
                        }
                        if ( !$user->isAllowed( $right ) ) {
-                               $errors[] = array( 'protectedpagetext', $right );
+                               $errors[] = array( 'protectedpagetext', $right, $action );
                        } elseif ( $this->mCascadeRestriction && !$user->isAllowed( 'protect' ) ) {
-                               $errors[] = array( 'protectedpagetext', 'protect' );
+                               $errors[] = array( 'protectedpagetext', 'protect', $action );
                        }
                }
 
@@ -2191,7 +2194,7 @@ class Title {
                                                foreach ( $cascadingSources as $page ) {
                                                        $pages .= '* [[:' . $page->getPrefixedText() . "]]\n";
                                                }
-                                               $errors[] = array( 'cascadeprotected', count( $cascadingSources ), $pages );
+                                               $errors[] = array( 'cascadeprotected', count( $cascadingSources ), $pages, $action );
                                        }
                                }
                        }
@@ -2258,11 +2261,15 @@ class Title {
                                $errors[] = array( 'immobile-target-page' );
                        }
                } elseif ( $action == 'delete' ) {
-                       if ( count( $this->getUserPermissionsErrorsInternal( 'edit',
-                               $user, $doExpensiveQueries, true ) )
-                       ) {
-                               // If they can't edit, they shouldn't delete.
-                               $errors[] = array( 'delete-cantedit' );
+                       $tempErrors = $this->checkPageRestrictions( 'edit',
+                               $user, array(), $doExpensiveQueries, true );
+                       if( !$tempErrors ) {
+                               $tempErrors = $this->checkCascadingSourcesRestrictions( 'edit',
+                                       $user, $tempErrors, $doExpensiveQueries, true );
+                       }
+                       if ( $tempErrors ) {
+                               // If protection keeps them from editing, they shouldn't be able to delete.
+                               $errors[] = array( 'deleteprotected' );
                        }
                        if ( $doExpensiveQueries && $wgDeleteRevisionsLimit
                                && !$this->userCan( 'bigdelete', $user ) && $this->isBigDeletion()
@@ -2437,6 +2444,19 @@ class Title {
                                'checkPermissionHooks',
                                'checkReadPermissions',
                        );
+               # Don't call checkSpecialsAndNSPermissions or checkCSSandJSPermissions
+               # here as it will lead to duplicate error messages. This is okay to do
+               # since anywhere that checks for create will also check for edit, and
+               # those checks are called for edit.
+               } elseif ( $action == 'create' ) {
+                       $checks = array(
+                               'checkQuickPermissions',
+                               'checkPermissionHooks',
+                               'checkPageRestrictions',
+                               'checkCascadingSourcesRestrictions',
+                               'checkActionPermissions',
+                               'checkUserBlock'
+                       );
                } else {
                        $checks = array(
                                'checkQuickPermissions',
@@ -3258,6 +3278,7 @@ class Title {
                $this->mEstimateRevisions = null;
                $this->mPageLanguage = false;
                $this->mDbPageLanguage = null;
+               $this->mIsBigDeletion = null;
        }
 
        /**
@@ -4364,12 +4385,32 @@ class Title {
                        return false;
                }
 
-               $revCount = $this->estimateRevisionCount();
-               return $revCount > $wgDeleteRevisionsLimit;
+               if ( $this->mIsBigDeletion === null ) {
+                       $dbr = wfGetDB( DB_SLAVE );
+
+                       $innerQuery = $dbr->selectSQLText(
+                               'revision',
+                               '1',
+                               array( 'rev_page' => $this->getArticleID() ),
+                               __METHOD__,
+                               array( 'LIMIT' => $wgDeleteRevisionsLimit + 1 )
+                       );
+
+                       $revCount = $dbr->query(
+                               'SELECT COUNT(*) FROM (' . $innerQuery . ') AS innerQuery',
+                               __METHOD__
+                       );
+                       $revCount = $revCount->fetchRow();
+                       $revCount = $revCount['COUNT(*)'];
+
+                       $this->mIsBigDeletion = $revCount > $wgDeleteRevisionsLimit;
+               }
+
+               return $this->mIsBigDeletion;
        }
 
        /**
-        * Get the  approximate revision count of this page.
+        * Get the approximate revision count of this page.
         *
         * @return int
         */
index fe41187..7e846ad 100644 (file)
@@ -2733,7 +2733,7 @@ class User implements IDBAccessObject {
 
                                foreach ( $columns as $column ) {
                                        foreach ( $rows as $row ) {
-                                               $checkmatrixOptions["$prefix-$column-$row"] = true;
+                                               $checkmatrixOptions["$prefix$column-$row"] = true;
                                        }
                                }
 
index 913b430..0ce9b5a 100644 (file)
@@ -448,6 +448,8 @@ class UserMailer {
         * This method is doing Q encoding inside encoded-words as defined by RFC 2047
         * This is for email headers.
         * The built in quoted_printable_encode() is for email bodies
+        * @param string $string
+        * @param string $charset
         * @return string
         */
        public static function quotedPrintable( $string, $charset = '' ) {
index f69fe63..93d6c0b 100644 (file)
@@ -270,45 +270,61 @@ class WatchedItem {
        }
 
        /**
-        * Given a title and user (assumes the object is setup), add the watch to the database.
+        * @param WatchedItem[] $items
         * @return bool
         */
-       public function addWatch() {
-               wfProfileIn( __METHOD__ );
+       static public function batchAddWatch( array $items ) {
+               $section = new ProfileSection( __METHOD__ );
 
-               // Only loggedin user can have a watchlist
-               if ( wfReadOnly() || $this->mUser->isAnon() || !$this->isAllowed( 'editmywatchlist' ) ) {
-                       wfProfileOut( __METHOD__ );
+               if ( wfReadOnly() ) {
                        return false;
                }
 
-               // Use INSERT IGNORE to avoid overwriting the notification timestamp
-               // if there's already an entry for this page
-               $dbw = wfGetDB( DB_MASTER );
-               $dbw->insert( 'watchlist',
-                       array(
-                               'wl_user' => $this->getUserId(),
-                               'wl_namespace' => MWNamespace::getSubject( $this->getTitleNs() ),
-                               'wl_title' => $this->getTitleDBkey(),
+               $rows = array();
+               foreach ( $items as $item ) {
+                       // Only loggedin user can have a watchlist
+                       if ( $item->mUser->isAnon() || !$item->isAllowed( 'editmywatchlist' ) ) {
+                               continue;
+                       }
+                       $rows[] = array(
+                               'wl_user' => $item->getUserId(),
+                               'wl_namespace' => MWNamespace::getSubject( $item->getTitleNs() ),
+                               'wl_title' => $item->getTitleDBkey(),
+                               'wl_notificationtimestamp' => null,
+                       );
+                       // Every single watched page needs now to be listed in watchlist;
+                       // namespace:page and namespace_talk:page need separate entries:
+                       $rows[] = array(
+                               'wl_user' => $item->getUserId(),
+                               'wl_namespace' => MWNamespace::getTalk( $item->getTitleNs() ),
+                               'wl_title' => $item->getTitleDBkey(),
                                'wl_notificationtimestamp' => null
-                       ), __METHOD__, 'IGNORE' );
+                       );
+                       $item->watched = true;
+               }
 
-               // Every single watched page needs now to be listed in watchlist;
-               // namespace:page and namespace_talk:page need separate entries:
-               $dbw->insert( 'watchlist',
-                       array(
-                               'wl_user' => $this->getUserId(),
-                               'wl_namespace' => MWNamespace::getTalk( $this->getTitleNs() ),
-                               'wl_title' => $this->getTitleDBkey(),
-                               'wl_notificationtimestamp' => null
-                       ), __METHOD__, 'IGNORE' );
+               if ( !$rows ) {
+                       return false;
+               }
 
-               $this->watched = true;
+               $dbw = wfGetDB( DB_MASTER );
+               foreach( array_chunk( $rows, 100 ) as $toInsert ) {
+                       // Use INSERT IGNORE to avoid overwriting the notification timestamp
+                       // if there's already an entry for this page
+                       $dbw->insert( 'watchlist', $toInsert, __METHOD__, 'IGNORE' );
+               }
 
-               wfProfileOut( __METHOD__ );
                return true;
        }
 
+       /**
+        * Given a title and user (assumes the object is setup), add the watch to the database.
+        * @return bool
+        */
+       public function addWatch() {
+               return self::batchAddWatch( array( $this ) );
+       }
+
        /**
         * Same as addWatch, only the opposite.
         * @return bool
index adccf9c..ad9f4e6 100644 (file)
@@ -51,7 +51,7 @@ class WebResponse {
         *     secure: bool, secure attribute ($wgCookieSecure)
         *     httpOnly: bool, httpOnly attribute ($wgCookieHttpOnly)
         *     raw: bool, if true uses PHP's setrawcookie() instead of setcookie()
-        *   For backwards compatability, if $options is not an array then it and
+        *   For backwards compatibility, if $options is not an array then it and
         *   the following two parameters will be interpreted as values for
         *   'prefix', 'domain', and 'secure'
         * @since 1.22 Replaced $prefix, $domain, and $forceSecure with $options
@@ -61,7 +61,7 @@ class WebResponse {
                global $wgCookieSecure, $wgCookieExpiration, $wgCookieHttpOnly;
 
                if ( !is_array( $options ) ) {
-                       // Backwards compatability
+                       // Backwards compatibility
                        $options = array( 'prefix' => $options );
                        if ( func_num_args() >= 5 ) {
                                $options['domain'] = func_get_arg( 4 );
index 7761ecc..159f711 100644 (file)
@@ -134,31 +134,6 @@ class Xml {
                return self::openElement( $element, $attribs ) . $contents . "</$element>";
        }
 
-       /**
-        * Build a drop-down box for selecting a namespace
-        *
-        * @param string $selected Namespace which should be pre-selected
-        * @param string|null $all Value of an item denoting all namespaces, or null to omit
-        * @param string $element_name Value of the "name" attribute of the select tag
-        * @param string $label Optional label to add to the field
-        * @return string
-        * @deprecated since 1.19
-        */
-       public static function namespaceSelector( $selected = '', $all = null,
-               $element_name = 'namespace', $label = null
-       ) {
-               wfDeprecated( __METHOD__, '1.19' );
-               return Html::namespaceSelector( array(
-                       'selected' => $selected,
-                       'all' => $all,
-                       'label' => $label,
-               ), array(
-                       'name' => $element_name,
-                       'id' => 'namespace',
-                       'class' => 'namespaceselector',
-               ) );
-       }
-
        /**
         * Create a date selector
         *
@@ -317,7 +292,8 @@ class Xml {
                        $attributes['value'] = $value;
                }
 
-               return self::element( 'input', $attributes + $attribs );
+               return self::element( 'input',
+                       Html::getTextInputAttributes( $attributes + $attribs ) );
        }
 
        /**
@@ -453,9 +429,16 @@ class Xml {
         * @return string HTML
         */
        public static function checkLabel( $label, $name, $id, $checked = false, $attribs = array() ) {
-               return self::check( $name, $checked, array( 'id' => $id ) + $attribs ) .
+               global $wgUseMediaWikiUIEverywhere;
+               $chkLabel = self::check( $name, $checked, array( 'id' => $id ) + $attribs ) .
                        '&#160;' .
                        self::label( $label, $id, $attribs );
+
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       $chkLabel = self::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+                               $chkLabel . self::closeElement( 'div' );
+               }
+               return $chkLabel;
        }
 
        /**
@@ -480,12 +463,26 @@ class Xml {
 
        /**
         * Convenience function to build an HTML submit button
+        * When $wgUseMediaWikiUIEverywhere is true it will default to a constructive button
         * @param string $value Label text for the button
         * @param array $attribs Optional custom attributes
         * @return string HTML
         */
        public static function submitButton( $value, $attribs = array() ) {
-               return Html::element( 'input', array( 'type' => 'submit', 'value' => $value ) + $attribs );
+               global $wgUseMediaWikiUIEverywhere;
+               $baseAttrs = array(
+                       'type' => 'submit',
+                       'value' => $value,
+               );
+               // Done conditionally for time being as it is possible
+               // some submit forms
+               // might need to be mw-ui-destructive (e.g. delete a page)
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       $baseAttrs['class'] = 'mw-ui-button mw-ui-constructive';
+               }
+               // Any custom attributes will take precendence of anything in baseAttrs e.g. override the class
+               $attribs = $attribs + $baseAttrs;
+               return Html::element( 'input', $attribs );
        }
 
        /**
@@ -617,12 +614,14 @@ class Xml {
         */
        public static function textarea( $name, $content, $cols = 40, $rows = 5, $attribs = array() ) {
                return self::element( 'textarea',
-                                       array(
-                                               'name' => $name,
-                                               'id' => $name,
-                                               'cols' => $cols,
-                                               'rows' => $rows
-                                       ) + $attribs,
+                                       Html::getTextInputAttributes(
+                                               array(
+                                                       'name' => $name,
+                                                       'id' => $name,
+                                                       'cols' => $cols,
+                                                       'rows' => $rows
+                                               ) + $attribs
+                                       ),
                                        $content, false );
        }
 
index 839d0ed..7dd4616 100644 (file)
@@ -282,7 +282,6 @@ abstract class Action {
         *
         * @param User $user The user to check, or null to use the context user
         * @throws UserBlockedError|ReadOnlyError|PermissionsError
-        * @return bool True on success
         */
        protected function checkCanExecute( User $user ) {
                $right = $this->getRestriction();
@@ -304,7 +303,6 @@ abstract class Action {
                if ( $this->requiresWrite() && wfReadOnly() ) {
                        throw new ReadOnlyError();
                }
-               return true;
        }
 
        /**
index dd5195d..e064aab 100644 (file)
@@ -100,6 +100,17 @@ class CreditsAction extends FormlessAction {
                        $this->userLink( $user ) )->params( $user->getName() )->escaped();
        }
 
+       /**
+        * Whether we can display the user's real name (not a hidden pref)
+        *
+        * @since 1.24
+        * @return bool
+        */
+       protected function canShowRealUserName() {
+               $hiddenPrefs = $this->context->getConfig()->get( 'HiddenPrefs' );
+               return !in_array( 'realname', $hiddenPrefs );
+       }
+
        /**
         * Get a list of contributors of $article
         * @param int $cnt Maximum list of contributors to show
@@ -107,8 +118,6 @@ class CreditsAction extends FormlessAction {
         * @return string Html
         */
        protected function getContributors( $cnt, $showIfMax ) {
-               global $wgHiddenPrefs;
-
                $contributors = $this->page->getContributors();
 
                $others_link = false;
@@ -132,7 +141,7 @@ class CreditsAction extends FormlessAction {
                        $cnt--;
                        if ( $user->isLoggedIn() ) {
                                $link = $this->link( $user );
-                               if ( !in_array( 'realname', $wgHiddenPrefs ) && $user->getRealName() ) {
+                               if ( $this->canShowRealUserName() && $user->getRealName() ) {
                                        $real_names[] = $link;
                                } else {
                                        $user_names[] = $link;
@@ -192,8 +201,7 @@ class CreditsAction extends FormlessAction {
         * @return string Html
         */
        protected function link( User $user ) {
-               global $wgHiddenPrefs;
-               if ( !in_array( 'realname', $wgHiddenPrefs ) && !$user->isAnon() ) {
+               if ( $this->canShowRealUserName() && !$user->isAnon() ) {
                        $real = $user->getRealName();
                } else {
                        $real = false;
@@ -216,8 +224,7 @@ class CreditsAction extends FormlessAction {
                if ( $user->isAnon() ) {
                        return $this->msg( 'anonuser' )->rawParams( $link )->parse();
                } else {
-                       global $wgHiddenPrefs;
-                       if ( !in_array( 'realname', $wgHiddenPrefs ) && $user->getRealName() ) {
+                       if ( $this->canShowRealUserName() && $user->getRealName() ) {
                                return $link;
                        } else {
                                return $this->msg( 'siteuser' )->rawParams( $link )->params( $user->getName() )->escaped();
index 069d570..12f0dff 100644 (file)
@@ -41,7 +41,13 @@ class DeleteAction extends FormlessAction {
        }
 
        public function show() {
-
+               if ( $this->getContext()->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+                       $out = $this->getOutput();
+                       $out->addModuleStyles( array(
+                               'mediawiki.ui.input',
+                               'mediawiki.ui.checkbox',
+                       ) );
+               }
                $this->page->delete();
        }
 }
index 31f58b8..8876724 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * action=edit / action=submit handler
+ * action=edit handler
  *
  * Copyright © 2012 Timo Tijhof
  *
@@ -41,6 +41,13 @@ class EditAction extends FormlessAction {
        }
 
        public function show() {
+               if ( $this->getContext()->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+                       $out = $this->getOutput();
+                       $out->addModuleStyles( array(
+                               'mediawiki.ui.input',
+                               'mediawiki.ui.checkbox',
+                       ) );
+               }
                $page = $this->page;
                $user = $this->getUser();
 
@@ -50,26 +57,3 @@ class EditAction extends FormlessAction {
                }
        }
 }
-
-/**
- * Edit submission handler
- *
- * This is the same as EditAction; except that it sets the session cookie.
- *
- * @ingroup Actions
- */
-class SubmitAction extends EditAction {
-
-       public function getName() {
-               return 'submit';
-       }
-
-       public function show() {
-               if ( session_id() == '' ) {
-                       // Send a cookie so anons get talk message notifications
-                       wfSetupSession();
-               }
-
-               parent::show();
-       }
-}
index 4992313..66ea245 100644 (file)
@@ -92,8 +92,6 @@ class HistoryAction extends FormlessAction {
         * Print the history page for an article.
         */
        function onView() {
-               global $wgScript, $wgUseFileCache;
-
                $out = $this->getOutput();
                $request = $this->getRequest();
 
@@ -107,9 +105,11 @@ class HistoryAction extends FormlessAction {
                wfProfileIn( __METHOD__ );
 
                $this->preCacheMessages();
+               $config = $this->context->getConfig();
 
                # Fill in the file cache if not set already
-               if ( $wgUseFileCache && HTMLFileCache::useFileCache( $this->getContext() ) ) {
+               $useFileCache = $config->get( 'UseFileCache' );
+               if ( $useFileCache && HTMLFileCache::useFileCache( $this->getContext() ) ) {
                        $cache = HTMLFileCache::newFromTitle( $this->getTitle(), 'history' );
                        if ( !$cache->isCacheGood( /* Assume up to date */ ) ) {
                                ob_start( array( &$cache, 'saveToFileCache' ) );
@@ -119,6 +119,13 @@ class HistoryAction extends FormlessAction {
                // Setup page variables.
                $out->setFeedAppendQuery( 'action=history' );
                $out->addModules( 'mediawiki.action.history' );
+               if ( $config->get( 'UseMediaWikiUIEverywhere' ) ) {
+                       $out = $this->getOutput();
+                       $out->addModuleStyles( array(
+                               'mediawiki.ui.input',
+                               'mediawiki.ui.checkbox',
+                       ) );
+               }
 
                // Handle atom/RSS feeds.
                $feedType = $request->getVal( 'feed' );
@@ -173,7 +180,7 @@ class HistoryAction extends FormlessAction {
                }
 
                // Add the general form
-               $action = htmlspecialchars( $wgScript );
+               $action = htmlspecialchars( wfScript() );
                $out->addHTML(
                        "<form action=\"$action\" method=\"get\" id=\"mw-history-searchform\">" .
                        Xml::fieldset(
@@ -254,14 +261,14 @@ class HistoryAction extends FormlessAction {
         * @param string $type Feed type
         */
        function feed( $type ) {
-               global $wgFeedClasses, $wgFeedLimit;
                if ( !FeedUtils::checkFeedOutput( $type ) ) {
                        return;
                }
                $request = $this->getRequest();
 
+               $feedClasses = $this->context->getConfig()->get( 'FeedClasses' );
                /** @var RSSFeed|AtomFeed $feed */
-               $feed = new $wgFeedClasses[$type](
+               $feed = new $feedClasses[$type](
                        $this->getTitle()->getPrefixedText() . ' - ' .
                        $this->msg( 'history-feed-title' )->inContentLanguage()->text(),
                        $this->msg( 'history-feed-description' )->inContentLanguage()->text(),
@@ -271,7 +278,10 @@ class HistoryAction extends FormlessAction {
                // Get a limit on number of feed entries. Provide a sane default
                // of 10 if none is defined (but limit to $wgFeedLimit max)
                $limit = $request->getInt( 'limit', 10 );
-               $limit = min( max( $limit, 1 ), $wgFeedLimit );
+               $limit = min(
+                       max( $limit, 1 ),
+                       $this->context->getConfig()->get( 'FeedLimit' )
+               );
 
                $items = $this->fetchRevisions( $limit, 0, self::DIR_NEXT );
 
@@ -462,21 +472,25 @@ class HistoryPager extends ReverseChronologicalPager {
         * @return string HTML output
         */
        function getStartBody() {
-               global $wgScript;
+               global $wgUseMediaWikiUIEverywhere;
                $this->lastRow = false;
                $this->counter = 1;
                $this->oldIdChecked = 0;
 
                $this->getOutput()->wrapWikiMsg( "<div class='mw-history-legend'>\n$1\n</div>", 'histlegend' );
-               $s = Html::openElement( 'form', array( 'action' => $wgScript,
+               $s = Html::openElement( 'form', array( 'action' => wfScript(),
                        'id' => 'mw-history-compare' ) ) . "\n";
                $s .= Html::hidden( 'title', $this->getTitle()->getPrefixedDBkey() ) . "\n";
                $s .= Html::hidden( 'action', 'historysubmit' ) . "\n";
 
                // Button container stored in $this->buttons for re-use in getEndBody()
                $this->buttons = '<div>';
+               $className = 'historysubmit mw-history-compareselectedversions-button';
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       $className .= ' mw-ui-button mw-ui-constructive';
+               }
                $this->buttons .= $this->submitButton( $this->msg( 'compareselectedversions' )->text(),
-                       array( 'class' => 'historysubmit mw-history-compareselectedversions-button' )
+                       array( 'class' => $className )
                                + Linker::tooltipAndAccesskeyAttribs( 'compareselectedversions' )
                ) . "\n";
 
@@ -873,6 +887,7 @@ class HistoryPager extends ReverseChronologicalPager {
 
        /**
         * This is called if a write operation is possible from the generated HTML
+        * @param bool $enable
         */
        function preventClickjacking( $enable = true ) {
                $this->preventClickjacking = $enable;
index c2c1ff5..f932a40 100644 (file)
@@ -193,13 +193,13 @@ class InfoAction extends FormlessAction {
         * @return array
         */
        protected function pageInfo() {
-               global $wgContLang, $wgRCMaxAge, $wgMemc, $wgMiserMode,
-                       $wgUnwatchedPageThreshold, $wgPageInfoTransclusionLimit, $wgPageLanguageUseDB;
+               global $wgContLang, $wgMemc;
 
                $user = $this->getUser();
                $lang = $this->getLanguage();
                $title = $this->getTitle();
                $id = $title->getArticleID();
+               $config = $this->context->getConfig();
 
                $memcKey = wfMemcKey( 'infoaction',
                        sha1( $title->getPrefixedText() ), $this->page->getLatest() );
@@ -207,7 +207,7 @@ class InfoAction extends FormlessAction {
                $version = isset( $pageCounts['cacheversion'] ) ? $pageCounts['cacheversion'] : false;
                if ( $pageCounts === false || $version !== self::CACHE_VERSION ) {
                        // Get page information that would be too "expensive" to retrieve by normal means
-                       $pageCounts = self::pageCounts( $title );
+                       $pageCounts = $this->pageCounts( $title );
                        $pageCounts['cacheversion'] = self::CACHE_VERSION;
 
                        $wgMemc->set( $memcKey, $pageCounts );
@@ -276,7 +276,7 @@ class InfoAction extends FormlessAction {
                // Language in which the page content is (supposed to be) written
                $pageLang = $title->getPageLanguage()->getCode();
 
-               if ( $wgPageLanguageUseDB && $this->getTitle()->userCan( 'pagelang' ) ) {
+               if ( $config->get( 'PageLanguageUseDB' ) && $this->getTitle()->userCan( 'pagelang' ) ) {
                        // Link to Special:PageLanguage with pre-filled page title if user has permissions
                        $titleObj = SpecialPage::getTitleFor( 'PageLanguage', $title->getPrefixedText() );
                        $langDisp = Linker::link(
@@ -321,19 +321,20 @@ class InfoAction extends FormlessAction {
                        );
                }
 
+               $unwatchedPageThreshold = $config->get( 'UnwatchedPageThreshold' );
                if (
                        $user->isAllowed( 'unwatchedpages' ) ||
-                       ( $wgUnwatchedPageThreshold !== false &&
-                               $pageCounts['watchers'] >= $wgUnwatchedPageThreshold )
+                       ( $unwatchedPageThreshold !== false &&
+                               $pageCounts['watchers'] >= $unwatchedPageThreshold )
                ) {
                        // Number of page watchers
                        $pageInfo['header-basic'][] = array(
                                $this->msg( 'pageinfo-watchers' ), $lang->formatNum( $pageCounts['watchers'] )
                        );
-               } elseif ( $wgUnwatchedPageThreshold !== false ) {
+               } elseif ( $unwatchedPageThreshold !== false ) {
                        $pageInfo['header-basic'][] = array(
                                $this->msg( 'pageinfo-watchers' ),
-                               $this->msg( 'pageinfo-few-watchers' )->numParams( $wgUnwatchedPageThreshold )
+                               $this->msg( 'pageinfo-few-watchers' )->numParams( $unwatchedPageThreshold )
                        );
                }
 
@@ -521,7 +522,7 @@ class InfoAction extends FormlessAction {
 
                // Recent number of edits (within past 30 days)
                $pageInfo['header-edits'][] = array(
-                       $this->msg( 'pageinfo-recent-edits', $lang->formatDuration( $wgRCMaxAge ) ),
+                       $this->msg( 'pageinfo-recent-edits', $lang->formatDuration( $config->get( 'RCMaxAge' ) ) ),
                        $lang->formatNum( $pageCounts['recent_edits'] )
                );
 
@@ -555,9 +556,9 @@ class InfoAction extends FormlessAction {
                        $pageCounts['transclusion']['from'] > 0 ||
                        $pageCounts['transclusion']['to'] > 0
                ) {
-                       $options = array( 'LIMIT' => $wgPageInfoTransclusionLimit );
+                       $options = array( 'LIMIT' => $config->get( 'PageInfoTransclusionLimit' ) );
                        $transcludedTemplates = $title->getTemplateLinksFrom( $options );
-                       if ( $wgMiserMode ) {
+                       if ( $config->get( 'MiserMode' ) ) {
                                $transcludedTargets = array();
                        } else {
                                $transcludedTargets = $title->getTemplateLinksTo( $options );
@@ -602,7 +603,7 @@ class InfoAction extends FormlessAction {
                                );
                        }
 
-                       if ( !$wgMiserMode && $pageCounts['transclusion']['to'] > 0 ) {
+                       if ( !$config->get( 'MiserMode' ) && $pageCounts['transclusion']['to'] > 0 ) {
                                if ( $pageCounts['transclusion']['to'] > count( $transcludedTargets ) ) {
                                        $more = Linker::link(
                                                $whatLinksHere,
@@ -635,16 +636,15 @@ class InfoAction extends FormlessAction {
         * @param Title $title Title to get counts for
         * @return array
         */
-       protected static function pageCounts( Title $title ) {
-               global $wgRCMaxAge, $wgDisableCounters, $wgMiserMode;
-
+       protected function pageCounts( Title $title ) {
                wfProfileIn( __METHOD__ );
                $id = $title->getArticleID();
+               $config = $this->context->getConfig();
 
                $dbr = wfGetDB( DB_SLAVE );
                $result = array();
 
-               if ( !$wgDisableCounters ) {
+               if ( !$config->get( 'DisableCounters' ) ) {
                        // Number of views
                        $views = (int)$dbr->selectField(
                                'page',
@@ -685,8 +685,8 @@ class InfoAction extends FormlessAction {
                );
                $result['authors'] = $authors;
 
-               // "Recent" threshold defined by $wgRCMaxAge
-               $threshold = $dbr->timestamp( time() - $wgRCMaxAge );
+               // "Recent" threshold defined by RCMaxAge setting
+               $threshold = $dbr->timestamp( time() - $config->get( 'RCMaxAge' ) );
 
                // Recent number of edits
                $edits = (int)$dbr->selectField(
@@ -740,7 +740,7 @@ class InfoAction extends FormlessAction {
                }
 
                // Counts for the number of transclusion links (to/from)
-               if ( $wgMiserMode ) {
+               if ( $config->get( 'MiserMode' ) ) {
                        $result['transclusion']['to'] = 0;
                } else {
                        $result['transclusion']['to'] = (int)$dbr->selectField(
@@ -780,8 +780,6 @@ class InfoAction extends FormlessAction {
         * @return string Html
         */
        protected function getContributors() {
-               global $wgHiddenPrefs;
-
                $contributors = $this->page->getContributors();
                $real_names = array();
                $user_names = array();
@@ -794,9 +792,10 @@ class InfoAction extends FormlessAction {
                                ? SpecialPage::getTitleFor( 'Contributions', $user->getName() )
                                : $user->getUserPage();
 
+                       $hiddenPrefs = $this->context->getConfig()->get( 'HiddenPrefs' );
                        if ( $user->getID() == 0 ) {
                                $anon_ips[] = Linker::link( $page, htmlspecialchars( $user->getName() ) );
-                       } elseif ( !in_array( 'realname', $wgHiddenPrefs ) && $user->getRealName() ) {
+                       } elseif ( !in_array( 'realname', $hiddenPrefs ) && $user->getRealName() ) {
                                $real_names[] = Linker::link( $page, htmlspecialchars( $user->getRealName() ) );
                        } else {
                                $user_names[] = Linker::link( $page, htmlspecialchars( $user->getName() ) );
index 2c2b470..a7f1ac3 100644 (file)
@@ -41,6 +41,13 @@ class ProtectAction extends FormlessAction {
        }
 
        public function show() {
+               if ( $this->getContext()->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+                       $out = $this->getOutput();
+                       $out->addModuleStyles( array(
+                               'mediawiki.ui.input',
+                               'mediawiki.ui.checkbox',
+                       ) );
+               }
 
                $this->page->protect();
        }
index 37e6e66..cd4e4ba 100644 (file)
@@ -48,10 +48,9 @@ class RawAction extends FormlessAction {
        }
 
        function onView() {
-               global $wgSquidMaxage, $wgForcedRawSMaxage;
-
                $this->getOutput()->disable();
                $request = $this->getRequest();
+               $config = $this->context->getConfig();
 
                if ( !$request->checkUrlExtension() ) {
                        return;
@@ -69,7 +68,7 @@ class RawAction extends FormlessAction {
                if ( $gen == 'css' || $gen == 'js' ) {
                        $this->mGen = $gen;
                        if ( $smaxage === null ) {
-                               $smaxage = $wgSquidMaxage;
+                               $smaxage = $config->get( 'SquidMaxage' );
                        }
                } else {
                        $this->mGen = false;
@@ -81,13 +80,13 @@ class RawAction extends FormlessAction {
                # Note: If using a canonical url for userpage css/js, we send an HTCP purge.
                if ( $smaxage === null ) {
                        if ( $contentType == 'text/css' || $contentType == 'text/javascript' ) {
-                               $smaxage = intval( $wgForcedRawSMaxage );
+                               $smaxage = intval( $config->get( 'ForcedRawSMaxage' ) );
                        } else {
                                $smaxage = 0;
                        }
                }
 
-               $maxage = $request->getInt( 'maxage', $wgSquidMaxage );
+               $maxage = $request->getInt( 'maxage', $config->get( 'SquidMaxage' ) );
 
                $response = $request->response();
 
diff --git a/includes/actions/SubmitAction.php b/includes/actions/SubmitAction.php
new file mode 100644 (file)
index 0000000..fae49f6
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Wrapper for EditAction; sets the session cookie.
+ *
+ * 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
+ *
+ * @file
+ * @ingroup Actions
+ */
+
+/**
+ * This is the same as EditAction; except that it sets the session cookie.
+ *
+ * @ingroup Actions
+ */
+class SubmitAction extends EditAction {
+
+       public function getName() {
+               return 'submit';
+       }
+
+       public function show() {
+               if ( session_id() === '' ) {
+                       // Send a cookie so anons get talk message notifications
+                       wfSetupSession();
+               }
+
+               parent::show();
+       }
+}
index 6234aba..bc28c8e 100644 (file)
@@ -40,4 +40,4 @@ class UnprotectAction extends ProtectAction {
 
                $this->page->unprotect();
        }
-}
\ No newline at end of file
+}
index cc18d3d..8c9a46a 100644 (file)
@@ -85,7 +85,7 @@ class WatchAction extends FormAction {
                        throw new UserNotLoggedIn( 'watchlistanontext', 'watchnologin' );
                }
 
-               return parent::checkCanExecute( $user );
+               parent::checkCanExecute( $user );
        }
 
        /**
@@ -178,7 +178,7 @@ class WatchAction extends FormAction {
                if ( $action != 'unwatch' ) {
                        $action = 'watch';
                }
-               $salt = array( $action, $title->getDBkey() );
+               $salt = array( $action, $title->getPrefixedDBkey() );
 
                // This token stronger salted and not compatible with ApiWatch
                // It's title/action specific because index.php is GET and API is POST
index a280ddf..c05a833 100644 (file)
@@ -1349,7 +1349,7 @@ abstract class ApiBase extends ContextSource {
                        $msg = wfMessage( $code, $errors[0] );
                }
                if ( isset( ApiBase::$messageMap[$code] ) ) {
-                       // Translate message to code, for backwards compatability
+                       // Translate message to code, for backwards compatibility
                        $code = ApiBase::$messageMap[$code]['code'];
                }
 
@@ -1411,9 +1411,9 @@ abstract class ApiBase extends ContextSource {
                        'code' => 'cantedit',
                        'info' => "You can't protect this page because you can't edit it"
                ),
-               'delete-cantedit' => array(
+               'deleteprotected' => array(
                        'code' => 'cantedit',
-                       'info' => "You can't delete this page because you can't edit it"
+                       'info' => "You can't delete this page because it has been protected"
                ),
                'badaccess-group0' => array(
                        'code' => 'permissiondenied',
@@ -2068,7 +2068,7 @@ abstract class ApiBase extends ContextSource {
        /**
         * @see self::getPossibleErrors()
         * @deprecated since 1.24
-        * @retun array
+        * @return array
         */
        public function getFinalPossibleErrors() {
                wfDeprecated( __METHOD__, '1.24' );
@@ -2227,4 +2227,19 @@ abstract class ApiBase extends ContextSource {
                }
                print "\n</pre>\n";
        }
+
+       /**
+        * Write logging information for API features to a debug log, for usage
+        * analysis.
+        * @param string $feature Feature being used.
+        */
+       protected function logFeatureUsage( $feature ) {
+               $request = $this->getRequest();
+               $s = $feature .
+                       ' ' . wfUrlencode( str_replace( ' ', '_', $this->getUser()->getName() ) ) .
+                       ' ' . $request->getIP() .
+                       ' "' . $request->getHeader( 'Referer' ) . '"' .
+                       ' "' . $request->getHeader( 'User-agent' ) . '"';
+               wfDebugLog( 'api-feature-usage', $s, 'private' );
+       }
 }
index f26d58b..aab0303 100644 (file)
@@ -72,8 +72,10 @@ class ApiDelete extends ApiBase {
 
                // Deprecated parameters
                if ( $params['watch'] ) {
+                       $this->logFeatureUsage( 'action=delete&watch' );
                        $watch = 'watch';
                } elseif ( $params['unwatch'] ) {
+                       $this->logFeatureUsage( 'action=delete&unwatch' );
                        $watch = 'unwatch';
                } else {
                        $watch = $params['watchlist'];
index fff061f..9126ad3 100644 (file)
@@ -309,8 +309,10 @@ class ApiEditPage extends ApiBase {
 
                // Deprecated parameters
                if ( $params['watch'] ) {
+                       $this->logFeatureUsage( 'action=edit&watch' );
                        $watch = true;
                } elseif ( $params['unwatch'] ) {
+                       $this->logFeatureUsage( 'action=edit&unwatch' );
                        $watch = false;
                }
 
index c2cec6d..8a3b534 100644 (file)
@@ -42,6 +42,7 @@ class ApiExpandTemplates extends ApiBase {
                $this->requireMaxOneParameter( $params, 'prop', 'generatexml' );
 
                if ( $params['prop'] === null ) {
+                       $this->logFeatureUsage( 'action=expandtemplates&!prop' );
                        $this->setWarning( 'Because no values have been specified for the prop parameter, a ' .
                                'legacy format has been used for the output. This format is deprecated, and in ' .
                                'the future, a default value will be set for the prop parameter, causing the new' .
@@ -70,6 +71,10 @@ class ApiExpandTemplates extends ApiBase {
                $retval = array();
 
                if ( isset( $prop['parsetree'] ) || $params['generatexml'] ) {
+                       if ( !isset( $prop['parsetree'] ) ) {
+                               $this->logFeatureUsage( 'action=expandtemplates&generatexml' );
+                       }
+
                        $wgParser->startExternalParse( $title_obj, $options, OT_PREPROCESS );
                        $dom = $wgParser->preprocessToDom( $params['text'] );
                        if ( is_callable( array( $dom, 'saveXML' ) ) ) {
index 3a0ed46..2e3fc11 100644 (file)
@@ -338,6 +338,18 @@ See the <a href='https://www.mediawiki.org/wiki/API'>complete documentation</a>,
        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.
+        */
+       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." );
+       }
 }
 
 /**
index 1b2e02c..61ed18f 100644 (file)
@@ -38,10 +38,11 @@ class ApiFormatDbg extends ApiFormatBase {
        }
 
        public function execute() {
+               $this->markDeprecated();
                $this->printText( var_export( $this->getResultData(), true ) );
        }
 
        public function getDescription() {
-               return 'Output data in PHP\'s var_export() format' . parent::getDescription();
+               return 'DEPRECATED! Output data in PHP\'s var_export() format' . parent::getDescription();
        }
 }
index 62253e1..7d32246 100644 (file)
@@ -38,6 +38,7 @@ class ApiFormatDump extends ApiFormatBase {
        }
 
        public function execute() {
+               $this->markDeprecated();
                ob_start();
                var_dump( $this->getResultData() );
                $result = ob_get_contents();
@@ -46,6 +47,6 @@ class ApiFormatDump extends ApiFormatBase {
        }
 
        public function getDescription() {
-               return 'Output data in PHP\'s var_dump() format' . parent::getDescription();
+               return 'DEPRECATED! Output data in PHP\'s var_dump() format' . parent::getDescription();
        }
 }
index 4130e70..3de2943 100644 (file)
@@ -38,10 +38,11 @@ class ApiFormatTxt extends ApiFormatBase {
        }
 
        public function execute() {
+               $this->markDeprecated();
                $this->printText( print_r( $this->getResultData(), true ) );
        }
 
        public function getDescription() {
-               return 'Output data in PHP\'s print_r() format' . parent::getDescription();
+               return 'DEPRECATED! Output data in PHP\'s print_r() format' . parent::getDescription();
        }
 }
index 2e58c72..a08c3ab 100644 (file)
@@ -35,6 +35,8 @@ class ApiFormatWddx extends ApiFormatBase {
        }
 
        public function execute() {
+               $this->markDeprecated();
+
                // Some versions of PHP have a broken wddx_serialize_value, see
                // PHP bug 45314. Test encoding an affected character (U+00A0)
                // to avoid this.
@@ -107,6 +109,6 @@ class ApiFormatWddx extends ApiFormatBase {
        }
 
        public function getDescription() {
-               return 'Output data in WDDX format' . parent::getDescription();
+               return 'DEPRECATED! Output data in WDDX format' . parent::getDescription();
        }
 }
index 700d4a5..9f9b057 100644 (file)
@@ -34,7 +34,12 @@ class ApiFormatYaml extends ApiFormatJson {
                return 'application/yaml';
        }
 
+       public function execute() {
+               $this->markDeprecated();
+               parent::execute();
+       }
+
        public function getDescription() {
-               return 'Output data in YAML format' . ApiFormatBase::getDescription();
+               return 'DEPRECATED! Output data in YAML format' . ApiFormatBase::getDescription();
        }
 }
index b0b8328..bcd6c12 100644 (file)
@@ -51,6 +51,7 @@ class ApiHelp extends ApiBase {
                }
 
                if ( is_array( $params['querymodules'] ) ) {
+                       $this->logFeatureUsage( 'action=help&querymodules' );
                        $queryModules = $params['querymodules'];
                        foreach ( $queryModules as $m ) {
                                $modules[] = 'query+' . $m;
index fdf3f02..f7d0ccf 100644 (file)
@@ -195,7 +195,7 @@ class ApiModuleManager extends ContextSource {
                        // create instance from factory
                        $instance = call_user_func( $factory, $this->mParent, $name );
 
-                       if ( ! $instance instanceof $class ) {
+                       if ( !$instance instanceof $class ) {
                                throw new MWException( "The factory function for module $name did not return an instance of $class!" );
                        }
                } else {
index cc58573..602a905 100644 (file)
@@ -134,8 +134,10 @@ class ApiMove extends ApiBase {
                        $watch = $params['watchlist'];
                } elseif ( $params['watch'] ) {
                        $watch = 'watch';
+                       $this->logFeatureUsage( 'action=move&watch' );
                } elseif ( $params['unwatch'] ) {
                        $watch = 'unwatch';
+                       $this->logFeatureUsage( 'action=move&unwatch' );
                }
 
                // Watch pages
index dfb87fd..0f26467 100644 (file)
@@ -61,6 +61,7 @@ class ApiPageSet extends ApiBase {
        private $mSpecialTitles = array();
        private $mNormalizedTitles = array();
        private $mInterwikiTitles = array();
+       /** @var Title[] */
        private $mPendingRedirectIDs = array();
        private $mConvertedTitles = array();
        private $mGoodRevIDs = array();
@@ -68,9 +69,7 @@ class ApiPageSet extends ApiBase {
        private $mFakePageId = -1;
        private $mCacheMode = 'public';
        private $mRequestedPageFields = array();
-       /**
-        * @var int
-        */
+       /** @var int */
        private $mDefaultNamespace = NS_MAIN;
 
        /**
@@ -389,7 +388,7 @@ class ApiPageSet extends ApiBase {
        /**
         * Get a list of redirect resolutions - maps a title to its redirect
         * target, as an array of output-ready arrays
-        * @return array
+        * @return Title[]
         */
        public function getRedirectTitles() {
                return $this->mRedirectTitles;
@@ -598,7 +597,7 @@ class ApiPageSet extends ApiBase {
 
        /**
         * Get the list of titles with negative namespace
-        * @return array Title
+        * @return Title[]
         */
        public function getSpecialTitles() {
                return $this->mSpecialTitles;
index 828fc22..844d1cc 100644 (file)
@@ -102,6 +102,9 @@ class ApiProtect extends ApiBase {
 
                $cascade = $params['cascade'];
 
+               if ( $params['watch'] ) {
+                       $this->logFeatureUsage( 'action=protect&watch' );
+               }
                $watch = $params['watch'] ? 'watch' : $params['watchlist'];
                $this->setWatch( $watch, $titleObj, 'watchdefault' );
 
index d04e5b4..da05f27 100644 (file)
@@ -50,6 +50,7 @@ class ApiQueryLangLinks extends ApiQueryBase {
                // Handle deprecated param
                $this->requireMaxOneParameter( $params, 'url', 'prop' );
                if ( $params['url'] ) {
+                       $this->logFeatureUsage( 'prop=langlinks&llurl' );
                        $prop = array( 'url' => 1 );
                }
 
index 6bf2612..be6bc68 100644 (file)
@@ -197,7 +197,6 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                $hasInterwikiResults = false;
                if ( $interwiki && $resultPageSet === null && $matches->hasInterwikiResults() ) {
                        $matches = $matches->getInterwikiResults();
-                       $iwprefixes = array();
                        $hasInterwikiResults = true;
 
                        // Include number of results if requested
index 818080c..90683a9 100644 (file)
@@ -166,7 +166,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                if ( $wgContLang->linkPrefixExtension() ) {
                        $linkPrefixCharset = $wgContLang->linkPrefixCharset();
                        $data['linkprefixcharset'] = $linkPrefixCharset;
-                       // For backwards compatability
+                       // For backwards compatibility
                        $data['linkprefix'] = "/^((?>.*[^$linkPrefixCharset]|))(.+)$/sDu";
                } else {
                        $data['linkprefixcharset'] = '';
index d7904d4..db92856 100644 (file)
@@ -47,6 +47,7 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo {
 
                // Alias sessionkey to filekey, but give an existing filekey precedence.
                if ( !$params['filekey'] && $params['sessionkey'] ) {
+                       $this->logFeatureUsage( 'prop=stashimageinfo&siisessionkey' );
                        $params['filekey'] = $params['sessionkey'];
                }
 
index b8b4e31..4b167b8 100644 (file)
@@ -224,6 +224,7 @@ class ApiQueryContributions extends ApiQueryBase {
 
                $show = $this->params['show'];
                if ( $this->params['toponly'] ) { // deprecated/old param
+                       $this->logFeatureUsage( 'list=usercontribs&uctoponly' );
                        $show[] = 'top';
                }
                if ( !is_null( $show ) ) {
index 97b74e5..2e80447 100644 (file)
@@ -461,7 +461,7 @@ class ApiResult extends ApiBase {
         *
         * @since 1.24
         * @param string|null $continue The "continue" parameter, if any
-        * @param array $allModules Contains ApiBase instances that will be executed
+        * @param ApiBase[] $allModules Contains ApiBase instances that will be executed
         * @param array $generatedModules Names of modules that depend on the generator
         * @return array Two elements: a boolean indicating if the generator is done,
         *   and an array of modules to actually execute.
index 2b840fe..368e7ce 100644 (file)
@@ -28,7 +28,7 @@
  * @ingroup API
  */
 class ApiUpload extends ApiBase {
-       /** @var UploadBase */
+       /** @var UploadBase|UploadFromChunks */
        protected $mUpload = null;
 
        protected $mParams;
@@ -52,6 +52,7 @@ class ApiUpload extends ApiBase {
 
                // Copy the session key to the file key, for backward compatibility.
                if ( !$this->mParams['filekey'] && $this->mParams['sessionkey'] ) {
+                       $this->logFeatureUsage( 'action=upload&sessionkey' );
                        $this->mParams['filekey'] = $this->mParams['sessionkey'];
                }
 
@@ -210,7 +211,6 @@ class ApiUpload extends ApiBase {
                        }
                } else {
                        $filekey = $this->mParams['filekey'];
-                       /** @var $status Status */
                        $status = $this->mUpload->addChunk(
                                $chunkPath, $chunkSize, $this->mParams['offset'] );
                        if ( !$status->isGood() ) {
@@ -467,6 +467,7 @@ class ApiUpload extends ApiBase {
 
        /**
         * Performs file verification, dies on error.
+        * @param array $verification
         */
        protected function checkVerification( array $verification ) {
                // @todo Move them to ApiBase's message map
@@ -551,6 +552,7 @@ class ApiUpload extends ApiBase {
 
                        if ( isset( $warnings['duplicate'] ) ) {
                                $dupes = array();
+                               /** @var File $dupe */
                                foreach ( $warnings['duplicate'] as $dupe ) {
                                        $dupes[] = $dupe->getName();
                                }
@@ -561,6 +563,7 @@ class ApiUpload extends ApiBase {
                        if ( isset( $warnings['exists'] ) ) {
                                $warning = $warnings['exists'];
                                unset( $warnings['exists'] );
+                               /** @var LocalFile $localFile */
                                $localFile = isset( $warning['normalizedFile'] )
                                        ? $warning['normalizedFile']
                                        : $warning['file'];
@@ -602,6 +605,7 @@ class ApiUpload extends ApiBase {
 
                // Deprecated parameters
                if ( $this->mParams['watch'] ) {
+                       $this->logFeatureUsage( 'action=upload&watch' );
                        $watch = true;
                }
 
index 43ff4ec..8060260 100644 (file)
@@ -84,6 +84,7 @@ class ApiWatch extends ApiBase {
                                );
                        }
 
+                       $this->logFeatureUsage( 'action=watch&title' );
                        $title = Title::newFromText( $params['title'] );
                        if ( !$title || !$title->isWatchable() ) {
                                $this->dieUsageMsg( array( 'invalidtitle', $params['title'] ) );
index c0c5977..e2e304a 100644 (file)
@@ -1163,8 +1163,8 @@ class LCStoreDB implements LCStore {
        private $readOnly = false;
 
        public function get( $code, $key ) {
-               if ( $this->writesDone && $this->dbw ) {
-                       $db = $this->dbw;
+               if ( $this->writesDone ) {
+                       $db = wfGetDB( DB_MASTER );
                } else {
                        $db = wfGetDB( DB_SLAVE );
                }
@@ -1184,16 +1184,7 @@ class LCStoreDB implements LCStore {
                        throw new MWException( __METHOD__ . ": Invalid language \"$code\"" );
                }
 
-               // We must keep a separate connection to MySQL in order to avoid breaking
-               // main transactions. However, SQLite deadlocks when using two connections.
-               // @todo get this trick to work on PostgreSQL too
-               if ( wfGetDB( DB_MASTER )->getType() == 'mysql' ) {
-                       $lb = wfGetLBFactory()->newMainLB();
-                       $this->dbw = $lb->getConnection( DB_MASTER );
-                       $this->dbw->clearFlag( DBO_TRX ); // auto-commit mode
-               } else {
-                       $this->dbw = wfGetDB( DB_MASTER );
-               }
+               $this->dbw = wfGetDB( DB_MASTER );
 
                $this->currentLang = $code;
                $this->batch = array();
index b471ea5..82e36d9 100644 (file)
@@ -474,50 +474,6 @@ class EnhancedChangesList extends ChangesList {
                return $r;
        }
 
-       /**
-        * Generate HTML for an arrow or placeholder graphic
-        * @param string $dir One of '', 'd', 'l', 'r'
-        * @param string $alt
-        * @param string $title
-        * @return string HTML "<img>" tag
-        */
-       protected function arrow( $dir, $alt = '', $title = '' ) {
-               global $wgStylePath;
-               $encUrl = htmlspecialchars( $wgStylePath . '/common/images/Arr_' . $dir . '.png' );
-               $encAlt = htmlspecialchars( $alt );
-               $encTitle = htmlspecialchars( $title );
-
-               return "<img src=\"$encUrl\" width=\"12\" height=\"12\" alt=\"$encAlt\" title=\"$encTitle\" />";
-       }
-
-       /**
-        * Generate HTML for a right- or left-facing arrow,
-        * depending on language direction.
-        * @return string HTML "<img>" tag
-        */
-       protected function sideArrow() {
-               $dir = $this->getLanguage()->isRTL() ? 'l' : 'r';
-
-               return $this->arrow( $dir, '+', $this->msg( 'rc-enhanced-expand' )->text() );
-       }
-
-       /**
-        * Generate HTML for a down-facing arrow
-        * depending on language direction.
-        * @return string HTML "<img>" tag
-        */
-       protected function downArrow() {
-               return $this->arrow( 'd', '-', $this->msg( 'rc-enhanced-hide' )->text() );
-       }
-
-       /**
-        * Generate HTML for a spacer image
-        * @return string HTML "<img>" tag
-        */
-       protected function spacerArrow() {
-               return $this->arrow( '', codepointToUtf8( 0xa0 ) ); // non-breaking space
-       }
-
        /**
         * Enhanced RC ungrouped line.
         *
index cfebf40..e33274e 100644 (file)
@@ -136,7 +136,7 @@ class RecentChange {
        /**
         * Parsing RC_* constants to human-readable test
         * @since 1.24
-        * @param int $rc_type
+        * @param int $rcType
         * @return string $type
         */
        public static function parseFromRCType( $rcType ) {
@@ -160,22 +160,6 @@ class RecentChange {
                return $type;
        }
 
-       /**
-        * No uses left in Gerrit on 2013-11-19.
-        * @deprecated since 1.22
-        * @param mixed $row
-        * @return RecentChange
-        */
-       public static function newFromCurRow( $row ) {
-               wfDeprecated( __METHOD__, '1.22' );
-               $rc = new RecentChange;
-               $rc->loadFromCurRow( $row );
-               $rc->notificationtimestamp = false;
-               $rc->numberofWatchingusers = false;
-
-               return $rc;
-       }
-
        /**
         * Obtain the recent change with a given rc_id value
         *
@@ -350,38 +334,6 @@ class RecentChange {
                }
        }
 
-       /**
-        * @deprecated since 1.22, use notifyRCFeeds instead.
-        */
-       public function notifyRC2UDP() {
-               wfDeprecated( __METHOD__, '1.22' );
-               $this->notifyRCFeeds();
-       }
-
-       /**
-        * Send some text to UDP.
-        * @deprecated since 1.22
-        */
-       public static function sendToUDP( $line, $address = '', $prefix = '', $port = '' ) {
-               global $wgRC2UDPAddress, $wgRC2UDPInterwikiPrefix, $wgRC2UDPPort, $wgRC2UDPPrefix;
-
-               wfDeprecated( __METHOD__, '1.22' );
-
-               # Assume default for standard RC case
-               $address = $address ? $address : $wgRC2UDPAddress;
-               $prefix = $prefix ? $prefix : $wgRC2UDPPrefix;
-               $port = $port ? $port : $wgRC2UDPPort;
-
-               $engine = new UDPRCFeedEngine();
-               $feed = array(
-                       'uri' => "udp://$address:$port/$prefix",
-                       'formatter' => 'IRCColourfulRCFeedFormatter',
-                       'add_interwiki_prefix' => $wgRC2UDPInterwikiPrefix,
-               );
-
-               $engine->send( $feed, $line );
-       }
-
        /**
         * Notify all the feeds about the change.
         * @param array $feeds Optional feeds to send to, defaults to $wgRCFeeds
@@ -452,15 +404,6 @@ class RecentChange {
                return new $wgRCEngines[$scheme];
        }
 
-       /**
-        * @deprecated since 1.22, moved to IRCColourfulRCFeedFormatter
-        */
-       public static function cleanupForIRC( $text ) {
-               wfDeprecated( __METHOD__, '1.22' );
-
-               return IRCColourfulRCFeedFormatter::cleanupForIRC( $text );
-       }
-
        /**
         * Mark a given change as patrolled
         *
@@ -793,42 +736,6 @@ class RecentChange {
                $this->mAttribs['rc_deleted'] = $row->rc_deleted; // MUST be set
        }
 
-       /**
-        * Makes a pseudo-RC entry from a cur row
-        *
-        * @deprecated since 1.22
-        * @param mixed $row
-        */
-       public function loadFromCurRow( $row ) {
-               wfDeprecated( __METHOD__, '1.22' );
-               $this->mAttribs = array(
-                       'rc_timestamp' => wfTimestamp( TS_MW, $row->rev_timestamp ),
-                       'rc_user' => $row->rev_user,
-                       'rc_user_text' => $row->rev_user_text,
-                       'rc_namespace' => $row->page_namespace,
-                       'rc_title' => $row->page_title,
-                       'rc_comment' => $row->rev_comment,
-                       'rc_minor' => $row->rev_minor_edit ? 1 : 0,
-                       'rc_type' => $row->page_is_new ? RC_NEW : RC_EDIT,
-                       'rc_source' => $row->page_is_new ? self::SRC_NEW : self::SRC_EDIT,
-                       'rc_cur_id' => $row->page_id,
-                       'rc_this_oldid' => $row->rev_id,
-                       'rc_last_oldid' => isset( $row->rc_last_oldid ) ? $row->rc_last_oldid : 0,
-                       'rc_bot' => 0,
-                       'rc_ip' => '',
-                       'rc_id' => $row->rc_id,
-                       'rc_patrolled' => $row->rc_patrolled,
-                       'rc_new' => $row->page_is_new, # obsolete
-                       'rc_old_len' => $row->rc_old_len,
-                       'rc_new_len' => $row->rc_new_len,
-                       'rc_params' => isset( $row->rc_params ) ? $row->rc_params : '',
-                       'rc_log_type' => isset( $row->rc_log_type ) ? $row->rc_log_type : null,
-                       'rc_log_action' => isset( $row->rc_log_action ) ? $row->rc_log_action : null,
-                       'rc_logid' => isset( $row->rc_logid ) ? $row->rc_logid : 0,
-                       'rc_deleted' => $row->rc_deleted // MUST be set
-               );
-       }
-
        /**
         * Get an attribute value
         *
index e09be56..683c959 100644 (file)
@@ -503,7 +503,7 @@ abstract class AbstractContent implements Content {
         *
         * @param Title $title Context title for parsing
         * @param int|null $revId Revision ID (for {{REVISIONID}})
-        * @param ParserOptions|null $options Parser options
+        * @param ParserOptions $options Parser options
         * @param bool $generateHtml Whether or not to generate HTML
         * @param ParserOutput &$output The output object to fill (reference).
         *
index 377d675..e563780 100644 (file)
@@ -80,8 +80,8 @@ class JSONContent extends TextContent {
        }
        /**
         * Constructs an HTML representation of a JSON object.
-        * @param Array $mapping
-        * @return string HTML.
+        * @param array $mapping
+        * @return string HTML
         */
        protected function objectTable( $mapping ) {
                $rows = array();
index 9d001da..6b77527 100644 (file)
@@ -46,12 +46,30 @@ class JSONContentHandler extends TextContentHandler {
                return new $this->contentClass( '' );
        }
 
-       /** JSON is English **/
+       /**
+        * Returns the english language, because JSON is english, and should be handled as such.
+        *
+        * @param Title $title
+        * @param Content|null $content
+        *
+        * @return Language Return of wfGetLangObj( 'en' )
+        *
+        * @see ContentHandler::getPageLanguage()
+        */
        public function getPageLanguage( Title $title, Content $content = null ) {
                return wfGetLangObj( 'en' );
        }
 
-       /** JSON is English **/
+       /**
+        * Returns the english language, because JSON is english, and should be handled as such.
+        *
+        * @param Title $title
+        * @param Content|null $content
+        *
+        * @return Language Return of wfGetLangObj( 'en' )
+        *
+        * @see ContentHandler::getPageLanguage()
+        */
        public function getPageViewLanguage( Title $title, Content $content = null ) {
                return wfGetLangObj( 'en' );
        }
index 8ab1122..00733d8 100644 (file)
@@ -352,19 +352,15 @@ class RequestContext implements IContextSource {
 
                        $skin = null;
                        wfRunHooks( 'RequestContextCreateSkin', array( $this, &$skin ) );
-                       $fallback = $this->getConfig()->get( 'FallbackSkin' );
                        $factory = SkinFactory::getDefaultInstance();
 
                        // If the hook worked try to set a skin from it
                        if ( $skin instanceof Skin ) {
                                $this->skin = $skin;
                        } elseif ( is_string( $skin ) ) {
-                               try {
-                                       $this->skin = $factory->makeSkin( $skin );
-                               } catch ( SkinException $e ) {
-                                       $this->skin = $factory->makeSkin( $fallback );
-                               }
-
+                               // Normalize the key, just in case the hook did something weird.
+                               $normalized = Skin::normalizeKey( $skin );
+                               $this->skin = $factory->makeSkin( $normalized );
                        }
 
                        // If this is still null (the hook didn't run or didn't work)
@@ -379,12 +375,13 @@ class RequestContext implements IContextSource {
                                        $userSkin = $this->getConfig()->get( 'DefaultSkin' );
                                }
 
-                               try {
-                                       $this->skin = $factory->makeSkin( $userSkin );
-                               } catch ( SkinException $e ) {
-                                       $this->skin = $factory->makeSkin( $fallback );
-                               }
+                               // Normalize the key in case the user is passing gibberish
+                               // or has old preferences (bug 69566).
+                               $normalized = Skin::normalizeKey( $userSkin );
 
+                               // Skin::normalizeKey will also validate it, so
+                               // this won't throw an exception
+                               $this->skin = $factory->makeSkin( $normalized );
                        }
 
                        // After all that set a context on whatever skin got created
index c2f5b6d..3a4bb27 100644 (file)
@@ -340,6 +340,7 @@ class DatabaseMssql extends DatabaseBase {
        }
 
        /**
+        * @param array $err
         * @return string
         */
        private function formatError( $err ) {
@@ -1068,6 +1069,7 @@ class DatabaseMssql extends DatabaseBase {
 
        /**
         * Begin a transaction, committing any previously open transaction
+        * @param string $fname
         */
        protected function doBegin( $fname = __METHOD__ ) {
                sqlsrv_begin_transaction( $this->mConn );
@@ -1076,6 +1078,7 @@ class DatabaseMssql extends DatabaseBase {
 
        /**
         * End a transaction
+        * @param string $fname
         */
        protected function doCommit( $fname = __METHOD__ ) {
                sqlsrv_commit( $this->mConn );
@@ -1085,6 +1088,7 @@ class DatabaseMssql extends DatabaseBase {
        /**
         * Rollback a transaction.
         * No-op on non-transactional databases.
+        * @param string $fname
         */
        protected function doRollback( $fname = __METHOD__ ) {
                sqlsrv_rollback( $this->mConn );
index f5fdca1..45fb3f6 100644 (file)
@@ -1154,7 +1154,7 @@ __INDEXATTR__;
                return wfTimestamp( TS_POSTGRES, $ts );
        }
 
-       /*
+       /**
         * Posted by cc[plus]php[at]c2se[dot]com on 25-Mar-2009 09:12
         * to http://www.php.net/manual/en/ref.pgsql.php
         *
@@ -1201,6 +1201,9 @@ __INDEXATTR__;
 
        /**
         * Return aggregated value function call
+        * @param array $valuedata
+        * @param string $valuename
+        * @return array
         */
        public function aggregateValue( $valuedata, $valuename = 'value' ) {
                return $valuedata;
index 3923241..7ec3b4a 100644 (file)
@@ -140,7 +140,7 @@ class ResultWrapper implements Iterator {
         * Fields can be retrieved with $row->fieldname, with fields acting like
         * member variables.
         *
-        * @return object
+        * @return stdClass
         * @throws DBUnexpectedError Thrown if the database returns an error
         */
        function fetchObject() {
@@ -177,8 +177,8 @@ class ResultWrapper implements Iterator {
                $this->db->dataSeek( $this, $row );
        }
 
-       /*********************
-        * Iterator functions
+       /*
+        * ======= Iterator functions =======
         * Note that using these in combination with the non-iterator functions
         * above may cause rows to be skipped or repeated.
         */
@@ -192,7 +192,7 @@ class ResultWrapper implements Iterator {
        }
 
        /**
-        * @return int
+        * @return stdClass|array|false
         */
        function current() {
                if ( is_null( $this->currentRow ) ) {
@@ -210,7 +210,7 @@ class ResultWrapper implements Iterator {
        }
 
        /**
-        * @return int
+        * @return stdClass
         */
        function next() {
                $this->pos++;
@@ -255,6 +255,9 @@ class FakeResultWrapper extends ResultWrapper {
                return count( $this->result );
        }
 
+       /**
+        * @return array|bool
+        */
        function fetchRow() {
                if ( $this->pos < count( $this->result ) ) {
                        $this->currentRow = $this->result[$this->pos];
@@ -276,7 +279,10 @@ class FakeResultWrapper extends ResultWrapper {
        function free() {
        }
 
-       // Callers want to be able to access fields with $this->fieldName
+       /**
+        * Callers want to be able to access fields with $this->fieldName
+        * @return false|stdClass
+        */
        function fetchObject() {
                $this->fetchRow();
                if ( $this->currentRow ) {
@@ -291,6 +297,9 @@ class FakeResultWrapper extends ResultWrapper {
                $this->currentRow = null;
        }
 
+       /**
+        * @return false|stdClass
+        */
        function next() {
                return $this->fetchObject();
        }
index bf49bbb..4dc693a 100644 (file)
@@ -421,7 +421,7 @@ interface IORMTable {
         *
         * @since 1.20
         *
-        * @param array|string $fields
+        * @param array $fields
         *
         * @return array
         */
index 24fa68c..2f898b7 100644 (file)
@@ -748,7 +748,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         *
         * @since 1.20
         *
-        * @param array|string $fields
+        * @param array $fields
         *
         * @return array
         */
index 20f348a..1466605 100644 (file)
@@ -115,6 +115,7 @@ class SearchUpdate implements DeferrableUpdate {
         * Clean text for indexing. Only really suitable for indexing in databases.
         * If you're using a real search engine, you'll probably want to override
         * this behavior and do something nicer with the original wikitext.
+        * @param string $text
         */
        public static function updateText( $text ) {
                global $wgContLang;
@@ -179,6 +180,7 @@ class SearchUpdate implements DeferrableUpdate {
         * Get a string representation of a title suitable for
         * including in a search index
         *
+        * @param SearchEngine $search
         * @return string A stripped-down title string ready for the search index
         */
        private function indexTitle( SearchEngine $search ) {
index 661330d..ee918f3 100644 (file)
@@ -1140,6 +1140,8 @@ class DifferenceEngine extends ContextSource {
 
        /**
         * Use specified text instead of loading from the database
+        * @param Content $oldContent
+        * @param Content $newContent
         * @since 1.21
         */
        public function setContent( Content $oldContent, Content $newContent ) {
@@ -1153,6 +1155,7 @@ class DifferenceEngine extends ContextSource {
        /**
         * Set the language in which the diff text is written
         * (Defaults to page content language).
+        * @param Language|string $lang
         * @since 1.19
         */
        public function setTextLanguage( $lang ) {
index 58b07f5..074128f 100644 (file)
@@ -252,6 +252,7 @@ class MWException extends Exception {
        /**
         * Send a header, if we haven't already sent them. We shouldn't,
         * but sometimes we might in a weird case like Export
+        * @param string $header
         */
        private static function header( $header ) {
                if ( !headers_sent() ) {
index 2820be2..78810eb 100644 (file)
@@ -218,7 +218,7 @@ abstract class FileBackend {
        /**
         * Check if the backend medium supports a field of extra features
         *
-        * @return int Bitfield of FileBackend::ATTR_* flags
+        * @param int $bitfield Bitfield of FileBackend::ATTR_* flags
         * @return bool
         * @since 1.23
         */
index e9c8883..f40ec46 100644 (file)
@@ -173,7 +173,7 @@ class SwiftFileBackend extends FileBackendStore {
         * Sanitize and filter the custom headers from a $params array.
         * We only allow certain Content- and X-Content- headers.
         *
-        * @param array $headers
+        * @param array $params
         * @return array Sanitized value of 'headers' field in $params
         */
        protected function sanitizeHdrs( array $params ) {
index a45fb7a..25a06d2 100644 (file)
@@ -546,7 +546,7 @@ class FileRepo {
         *
         * STUB
         * @param string $hash SHA-1 hash
-        * @return array
+        * @return File[]
         */
        public function findBySha1( $hash ) {
                return array();
@@ -1014,6 +1014,7 @@ class FileRepo {
                        } elseif ( is_array( $triple[2] ) && isset( $triple[2]['headers'] ) ) {
                                $headers = $triple[2]['headers'];
                        }
+                       // @fixme: $headers might not be defined
                        $operations[] = array(
                                'op' => FileBackend::isStoragePath( $src ) ? 'copy' : 'store',
                                'src' => $src,
@@ -1447,6 +1448,7 @@ class FileRepo {
         * Delete files in the deleted directory if they are not referenced in the filearchive table
         *
         * STUB
+        * @param array $storageKeys
         */
        public function cleanupDeletedBatch( array $storageKeys ) {
                $this->assertWritableRepo();
index 96c8803..926fd0b 100644 (file)
@@ -49,7 +49,7 @@ class LocalRepo extends FileRepo {
 
        /**
         * @throws MWException
-        * @param array $row
+        * @param stdClass $row
         * @return LocalFile
         */
        function newFileFromRow( $row ) {
@@ -91,7 +91,7 @@ class LocalRepo extends FileRepo {
                        $hashPath = $this->getDeletedHashPath( $key );
                        $path = "$root/$hashPath$key";
                        $dbw->begin( __METHOD__ );
-                       // Check for usage in deleted/hidden files and pre-emptively
+                       // Check for usage in deleted/hidden files and preemptively
                        // lock the key to avoid any future use until we are finished.
                        $deleted = $this->deletedFileHasKey( $key, 'lock' );
                        $hidden = $this->hiddenFileHasKey( $key, 'lock' );
@@ -167,7 +167,7 @@ class LocalRepo extends FileRepo {
         * Checks if there is a redirect named as $title
         *
         * @param Title $title Title of file
-        * @return bool
+        * @return bool|Title
         */
        function checkRedirect( Title $title ) {
                global $wgMemc;
@@ -370,7 +370,7 @@ class LocalRepo extends FileRepo {
         * SHA-1 content hash.
         *
         * @param string $hash A sha1 hash to look for
-        * @return array
+        * @return File[]
         */
        function findBySha1( $hash ) {
                $dbr = $this->getSlaveDB();
index fce3f78..8c0c781 100644 (file)
@@ -170,7 +170,7 @@ class RepoGroup {
        /**
         * Search repositories for many files at once.
         *
-        * @param array $items An array of titles, or an array of findFile() options with
+        * @param array $inputItems An array of titles, or an array of findFile() options with
         *    the "title" option giving the title. Example:
         *
         *     $findItem = array( 'title' => $title, 'private' => true );
@@ -183,10 +183,6 @@ class RepoGroup {
         *       The search title uses the input titles; the other is the final post-redirect title.
         *       All titles are returned as string DB keys and the inner array is associative.
         * @return array Map of (file name => File objects) for matches
-        *
-        * @param array $inputItems
-        * @param int $flags
-        * @return array
         */
        function findFiles( array $inputItems, $flags = 0 ) {
                if ( !$this->reposInitialised ) {
@@ -221,7 +217,7 @@ class RepoGroup {
        /**
         * Interface for FileRepo::checkRedirect()
         * @param Title $title
-        * @return bool
+        * @return bool|Title
         */
        function checkRedirect( Title $title ) {
                if ( !$this->reposInitialised ) {
@@ -273,7 +269,7 @@ class RepoGroup {
         * Find all instances of files with this key
         *
         * @param string $hash Base 36 SHA-1 hash
-        * @return array Array of File objects
+        * @return File[]
         */
        function findBySha1( $hash ) {
                if ( !$this->reposInitialised ) {
@@ -409,6 +405,7 @@ class RepoGroup {
 
        /**
         * Create a repo class based on an info structure
+        * @param array $info
         */
        protected function newRepo( $info ) {
                $class = $info['class'];
index a61002a..f612aa3 100644 (file)
@@ -1261,7 +1261,7 @@ abstract class File {
        /**
         * Creates a temp FS file with the same extension and the thumbnail
         * @param string $thumbPath Thumbnail path
-        * @returns TempFSFile
+        * @return TempFSFile
         */
        protected function makeTransformTmpFile( $thumbPath ) {
                $thumbExt = FileBackend::extensionFromPath( $thumbPath );
@@ -1287,6 +1287,7 @@ abstract class File {
         * Hook into transform() to allow migration of thumbnail files
         * STUB
         * Overridden by LocalFile
+        * @param string $thumbName
         */
        function migrateThumbFile( $thumbName ) {
        }
@@ -1937,7 +1938,7 @@ abstract class File {
         * @note Use getWidth()/getHeight() instead of this method unless you have a
         *  a good reason. This method skips all caches.
         *
-        * @param string $fileName The path to the file (e.g. From getLocalPathRef() )
+        * @param string $filePath The path to the file (e.g. From getLocalPathRef() )
         * @return array The width, followed by height, with optionally more things after
         */
        function getImageSize( $filePath ) {
index 3ba47ff..07f1f09 100644 (file)
@@ -379,6 +379,7 @@ class LocalFile extends File {
 
        /**
         * Load file metadata from the DB
+        * @param int $flags
         */
        function loadFromDB( $flags = 0 ) {
                # Polymorphic function name to distinguish foreign and local fetches
@@ -931,6 +932,7 @@ class LocalFile extends File {
 
        /**
         * Delete cached transformed files for the current version only.
+        * @param array $options
         */
        function purgeThumbnails( $options = array() ) {
                global $wgUseSquid;
@@ -2371,6 +2373,7 @@ class LocalFileRestoreBatch {
 
        /**
         * Add a file by ID
+        * @param int $fa_id
         */
        function addId( $fa_id ) {
                $this->ids[] = $fa_id;
@@ -2378,6 +2381,7 @@ class LocalFileRestoreBatch {
 
        /**
         * Add a whole lot of files by ID
+        * @param int[] $ids
         */
        function addIds( $ids ) {
                $this->ids = array_merge( $this->ids, $ids );
@@ -2973,6 +2977,7 @@ class LocalFileMoveBatch {
        /**
         * Cleanup a partially moved array of triplets by deleting the target
         * files. Called if something went wrong half way.
+        * @param array $triplets
         */
        function cleanupTarget( $triplets ) {
                // Create dest pairs from the triplets
@@ -2988,6 +2993,7 @@ class LocalFileMoveBatch {
        /**
         * Cleanup a fully moved array of triplets by deleting the source files.
         * Called at the end of the move process if everything else went ok.
+        * @param array $triplets
         */
        function cleanupSource( $triplets ) {
                // Create source file names from the triplets
index 53c2e10..2d3ea5a 100644 (file)
@@ -123,6 +123,7 @@ abstract class ImageGalleryBase extends ContextSource {
         *
         * You should not call this directly, but instead use
         * ImageGalleryBase::factory().
+        * @param string $mode
         */
        function __construct( $mode = 'traditional' ) {
                global $wgGalleryOptions;
@@ -154,6 +155,7 @@ abstract class ImageGalleryBase extends ContextSource {
 
        /**
         * Set bad image flag
+        * @param bool $flag
         */
        function setHideBadImages( $flag = true ) {
                $this->mHideBadImages = $flag;
index b004a95..207efa8 100644 (file)
@@ -103,6 +103,7 @@ class PackedImageGallery extends TraditionalImageGallery {
        /**
         * Do not support per-row on packed. It really doesn't work
         * since the images have varying widths.
+        * @param int $num
         */
        public function setPerRow( $num ) {
                return;
index a0dd370..4eb7e6e 100644 (file)
@@ -26,9 +26,7 @@ class HTMLCheckField extends HTMLFormField {
                                ),
                                Xml::check( $this->mName, $value, $attr ) . $this->mLabel );
                } else {
-                       return Xml::check( $this->mName, $value, $attr )
-                       . '&#160;'
-                       . Html::rawElement( 'label', array( 'for' => $this->mID ), $this->mLabel );
+                       return Xml::checkLabel( $this->mLabel, $this->mName, $this->mID, $value, $attr );
                }
        }
 
index 606523b..8255526 100644 (file)
@@ -80,6 +80,8 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
         * @return string
         */
        function getInputHTML( $value ) {
+               global $wgUseMediaWikiUIEverywhere;
+
                $html = '';
                $tableContents = '';
                $rows = $this->mParams['rows'];
@@ -113,8 +115,9 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                        foreach ( $columns as $columnTag ) {
                                $thisTag = "$columnTag-$rowTag";
                                // Construct the checkbox
+                               $thisId = "{$this->mID}-$thisTag";
                                $thisAttribs = array(
-                                       'id' => "{$this->mID}-$thisTag",
+                                       'id' => $thisId,
                                        'value' => $thisTag,
                                );
                                $checked = in_array( $thisTag, (array)$value, true );
@@ -125,10 +128,17 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                                        $checked = true;
                                        $thisAttribs['disabled'] = 1;
                                }
+                               $chkBox = Xml::check( "{$this->mName}[]", $checked, $attribs + $thisAttribs );
+                               if ( $wgUseMediaWikiUIEverywhere ) {
+                                       $chkBox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+                                               $chkBox .
+                                               Html::element( 'label', array( 'for' => $thisId ) ) .
+                                               Html::closeElement( 'div' );
+                               }
                                $rowContents .= Html::rawElement(
                                        'td',
                                        array(),
-                                       Xml::check( "{$this->mName}[]", $checked, $attribs + $thisAttribs )
+                                       $chkBox
                                );
                        }
                        $tableContents .= Html::rawElement( 'tr', array(), "\n$rowContents\n" );
index 4f1b530..77924ef 100644 (file)
@@ -16,6 +16,8 @@ class HTMLEditTools extends HTMLFormField {
        }
 
        /**
+        * @param string $value
+        * @return string
         * @since 1.20
         */
        public function getDiv( $value ) {
@@ -25,6 +27,8 @@ class HTMLEditTools extends HTMLFormField {
        }
 
        /**
+        * @param string $value
+        * @return string
         * @since 1.20
         */
        public function getRaw( $value ) {
index 6cf8d0a..6501890 100644 (file)
@@ -107,6 +107,7 @@ class HTMLForm extends ContextSource {
                'select' => 'HTMLSelectField',
                'radio' => 'HTMLRadioField',
                'multiselect' => 'HTMLMultiSelectField',
+               'limitselect' => 'HTMLSelectLimitField',
                'check' => 'HTMLCheckField',
                'toggle' => 'HTMLCheckField',
                'int' => 'HTMLIntField',
@@ -299,7 +300,12 @@ class HTMLForm extends ContextSource {
         * @return string
         */
        public function getDisplayFormat() {
-               return $this->displayFormat;
+               global $wgHTMLFormAllowTableFormat;
+               $format = $this->displayFormat;
+               if ( !$wgHTMLFormAllowTableFormat && $format === 'table' ) {
+                       $format = 'div';
+               }
+               return $format;
        }
 
        /**
@@ -868,6 +874,7 @@ class HTMLForm extends ContextSource {
         * @return string HTML.
         */
        function getButtons() {
+               global $wgUseMediaWikiUIEverywhere;
                $buttons = '';
 
                if ( $this->mShowSubmit ) {
@@ -887,15 +894,17 @@ class HTMLForm extends ContextSource {
 
                        $attribs['class'] = array( 'mw-htmlform-submit' );
 
+                       if ( $this->isVForm() || $wgUseMediaWikiUIEverywhere ) {
+                               array_push( $attribs['class'], 'mw-ui-button', 'mw-ui-constructive' );
+                       }
+
                        if ( $this->isVForm() ) {
                                // mw-ui-block is necessary because the buttons aren't necessarily in an
                                // immediate child div of the vform.
                                // @todo Let client specify if the primary submit button is progressive or destructive
                                array_push(
                                        $attribs['class'],
-                                       'mw-ui-button',
                                        'mw-ui-big',
-                                       'mw-ui-constructive',
                                        'mw-ui-block'
                                );
                        }
@@ -928,6 +937,14 @@ class HTMLForm extends ContextSource {
                                $attrs['id'] = $button['id'];
                        }
 
+                       if ( $wgUseMediaWikiUIEverywhere ) {
+                               if ( isset( $attrs['class' ] ) ) {
+                                       $attrs['class'] .= ' mw-ui-button';
+                               } else {
+                                       $attrs['class'] = 'mw-ui-button';
+                               }
+                       }
+
                        $buttons .= Html::element( 'input', $attrs ) . "\n";
                }
 
@@ -1245,6 +1262,9 @@ class HTMLForm extends ContextSource {
                                // Close enough to a div.
                                $getFieldHtmlMethod = 'getDiv';
                                break;
+                       case 'div':
+                               $getFieldHtmlMethod = 'getDiv';
+                               break;
                        default:
                                $getFieldHtmlMethod = 'get' . ucfirst( $displayFormat );
                }
index 6ea95ed..e32c0bb 100644 (file)
@@ -21,6 +21,8 @@ class HTMLHiddenField extends HTMLFormField {
        }
 
        /**
+        * @param string $value
+        * @return string
         * @since 1.20
         */
        public function getDiv( $value ) {
@@ -28,6 +30,8 @@ class HTMLHiddenField extends HTMLFormField {
        }
 
        /**
+        * @param string $value
+        * @return string
         * @since 1.20
         */
        public function getRaw( $value ) {
index cff8202..a422047 100644 (file)
@@ -23,6 +23,8 @@ class HTMLInfoField extends HTMLFormField {
        }
 
        /**
+        * @param string $value
+        * @return string
         * @since 1.20
         */
        public function getDiv( $value ) {
@@ -34,6 +36,8 @@ class HTMLInfoField extends HTMLFormField {
        }
 
        /**
+        * @param string $value
+        * @return string
         * @since 1.20
         */
        public function getRaw( $value ) {
index 576f5cd..1b71ab9 100644 (file)
@@ -47,6 +47,7 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
                        } else {
                                $thisAttribs = array( 'id' => "{$this->mID}-$info", 'value' => $info );
 
+                               // @todo: Make this use checkLabel for consistency purposes
                                $checkbox = Xml::check(
                                        $this->mName . '[]',
                                        in_array( $info, $value, true ),
diff --git a/includes/htmlform/HTMLSelectLimitField.php b/includes/htmlform/HTMLSelectLimitField.php
new file mode 100644 (file)
index 0000000..e7f1c04
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * A limit dropdown, which accepts any valid number
+ */
+class HTMLSelectLimitField extends HTMLSelectField {
+       /**
+        * Basically don't do any validation. If it's a number that's fine. Also,
+        * add it to the list if it's not there already
+        *
+        * @param string $value
+        * @param array $alldata
+        * @return bool
+        */
+       function validate( $value, $alldata ) {
+               if ( $value == '' ) {
+                       return true;
+               }
+
+               // Let folks pick an explicit limit not from our list, as long as it's a real numbr.
+               if ( !in_array( $value, $this->mParams['options'] )
+                       && $value == intval( $value )
+                       && $value > 0
+               ) {
+                       // This adds the explicitly requested limit value to the drop-down,
+                       // then makes sure it's sorted correctly so when we output the list
+                       // later, the custom option doesn't just show up last.
+                       $this->mParams['options'][$this->mParent->getLanguage()->formatNum( $value )] =
+                               intval( $value );
+                       asort( $this->mParams['options'] );
+               }
+
+               return true;
+       }
+}
index 4fd1989..21173d2 100644 (file)
@@ -15,7 +15,6 @@ class HTMLTextAreaField extends HTMLFormField {
        function getInputHTML( $value ) {
                $attribs = array(
                                'id' => $this->mID,
-                               'name' => $this->mName,
                                'cols' => $this->getCols(),
                                'rows' => $this->getRows(),
                        ) + $this->getTooltipAndAccessKey();
@@ -34,7 +33,6 @@ class HTMLTextAreaField extends HTMLFormField {
                );
 
                $attribs += $this->getAttributes( $allowedParams );
-
-               return Html::element( 'textarea', $attribs, $value );
+               return Html::textarea( $this->mName, $value, $attribs );
        }
 }
index e584d88..10bc67f 100644 (file)
@@ -41,13 +41,14 @@ class HTMLTextField extends HTMLFormField {
                # Implement tiny differences between some field variants
                # here, rather than creating a new class for each one which
                # is essentially just a clone of this one.
+               $type = 'text';
                if ( isset( $this->mParams['type'] ) ) {
                        switch ( $this->mParams['type'] ) {
                                case 'int':
-                                       $attribs['type'] = 'number';
+                                       $type = 'number';
                                        break;
                                case 'float':
-                                       $attribs['type'] = 'number';
+                                       $type = 'number';
                                        $attribs['step'] = 'any';
                                        break;
                                # Pass through
@@ -55,11 +56,10 @@ class HTMLTextField extends HTMLFormField {
                                case 'password':
                                case 'file':
                                case 'url':
-                                       $attribs['type'] = $this->mParams['type'];
+                                       $type = $this->mParams['type'];
                                        break;
                        }
                }
-
-               return Html::element( 'input', $attribs );
+               return Html::input( $this->mName, $value, $type, $attribs );
        }
 }
index b25ea09..427ded4 100644 (file)
@@ -297,9 +297,9 @@ abstract class DatabaseUpdater {
         * @param string $tableName The table name
         * @param string $oldIndexName The old index name
         * @param string $newIndexName The new index name
+        * @param string $sqlPath The path to the SQL change path
         * @param bool $skipBothIndexExistWarning Whether to warn if both the old
         * and the new indexes exist. [facultative; by default, false]
-        * @param string $sqlPath The path to the SQL change path
         */
        public function renameExtensionIndex( $tableName, $oldIndexName, $newIndexName,
                $sqlPath, $skipBothIndexExistWarning = false
index 83681b6..46bb86c 100644 (file)
@@ -702,7 +702,7 @@ class MssqlInstaller extends DatabaseInstaller {
        /**
         * Try to see if a given fulltext catalog exists
         * We assume we already have the appropriate database selected
-        * @param string $schemaName Catalog name to check
+        * @param string $catalogName Catalog name to check
         * @return bool
         */
        private function catalogExists( $catalogName ) {
index 4caf902..6dcce23 100644 (file)
@@ -158,7 +158,7 @@ class PostgresInstaller extends DatabaseInstaller {
        protected function openConnectionWithParams( $user, $password, $dbName, $schema ) {
                $status = Status::newGood();
                try {
-                       $db = Database::factory( 'postgres', array(
+                       $db = DatabaseBase::factory( 'postgres', array(
                                'host' => $this->getVar( 'wgDBserver' ),
                                'user' => $user,
                                'password' => $password,
index 68c2ebe..3a3e809 100644 (file)
@@ -667,7 +667,7 @@ class WebInstaller extends Installer {
         * Get HTML for an info box with an icon.
         *
         * @param string $text Wikitext, get this with wfMessage()->plain()
-        * @param string|bool $icon Icon name, file in skins/common/images. Default: false
+        * @param string|bool $icon Icon name, file in mw-config/images. Default: false
         * @param string|bool $class Additional class name to add to the wrapper div. Default: false.
         *
         * @return string
@@ -675,8 +675,8 @@ class WebInstaller extends Installer {
        public function getInfoBox( $text, $icon = false, $class = false ) {
                $text = $this->parse( $text, true );
                $icon = ( $icon == false ) ?
-                       '../skins/common/images/info-32.png' :
-                       '../skins/common/images/' . $icon;
+                       'images/info-32.png' :
+                       'images/' . $icon;
                $alt = wfMessage( 'config-information' )->text();
 
                return Html::infoBox( $text, $icon, $alt, $class, false );
index 174120f..f797ef9 100644 (file)
@@ -126,6 +126,11 @@ class WebInstallerOutput {
        public function getCSS() {
                // Horrible, horrible hack: the installer is currently hardcoded to use the Vector skin, so load
                // it here. Include instead of require, as this will work without it, it will just look bad.
+               // We need the 'global' statement for $wgResourceModules because the Vector skin adds the
+               // definitions for its RL modules there that we use implicitly below.
+               // @codingStandardsIgnoreStart
+               global $wgResourceModules; // This is NOT UNUSED!
+               // @codingStandardsIgnoreEnd
                global $wgStyleDirectory;
                include_once "$wgStyleDirectory/Vector/Vector.php";
 
@@ -260,7 +265,7 @@ class WebInstallerOutput {
        <title><?php $this->outputTitle(); ?></title>
        <?php echo $this->getCssUrl() . "\n"; ?>
        <?php echo $this->getJQuery() . "\n"; ?>
-       <?php echo Html::linkedScript( '../skins/common/config.js' ) . "\n"; ?>
+       <?php echo Html::linkedScript( 'config.js' ) . "\n"; ?>
 </head>
 
 <?php echo Html::openElement( 'body', array( 'class' => $this->getDir() ) ) . "\n"; ?>
@@ -285,7 +290,7 @@ class WebInstallerOutput {
 
 <div id="mw-panel">
        <div class="portal" id="p-logo">
-         <a style="background-image: url(../skins/common/images/mediawiki.png);"
+         <a style="background-image: url(images/installer-logo.png);"
                href="https://www.mediawiki.org/"
                title="Main Page"></a>
        </div>
@@ -309,7 +314,7 @@ class WebInstallerOutput {
        <title><?php $this->outputTitle(); ?></title>
        <?php echo $this->getCssUrl() . "\n"; ?>
        <?php echo $this->getJQuery(); ?>
-       <?php echo Html::linkedScript( '../skins/common/config.js' ); ?>
+       <?php echo Html::linkedScript( 'config.js' ); ?>
 </head>
 
 <body style="background-image: none">
index 9fdee76..2a9c54c 100644 (file)
@@ -187,7 +187,7 @@ abstract class WebInstallerPage {
        protected function startLiveBox() {
                $this->addHTML(
                        '<div id="config-spinner" style="display:none;">' .
-                       '<img src="../skins/common/images/ajax-loader.gif" /></div>' .
+                       '<img src="images/ajax-loader.gif" /></div>' .
                        '<script>jQuery( "#config-spinner" ).show();</script>' .
                        '<div id="config-live-log">' .
                        '<textarea name="LiveLog" rows="10" cols="30" readonly="readonly">'
@@ -1176,7 +1176,7 @@ class WebInstallerOptions extends WebInstallerPage {
                        'config_wgRightsIcon' => '[license_button]',
                ) );
                $styleUrl = $server . dirname( dirname( $this->parent->getUrl() ) ) .
-                       '/skins/common/config-cc.css';
+                       '/mw-config/config-cc.css';
                $iframeUrl = 'http://creativecommons.org/license/?' .
                        wfArrayToCgi( array(
                                'partner' => 'MediaWiki',
diff --git a/includes/installer/i18n/av.json b/includes/installer/i18n/av.json
new file mode 100644 (file)
index 0000000..0ce76fa
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gazimagomedov"
+               ]
+       },
+       "config-page-options": "Рекъезаби"
+}
index 19b02b5..b9de2cf 100644 (file)
        "config-page-name": "Navn",
        "config-page-options": "Indstillinger",
        "config-page-install": "Installer",
-       "config-page-complete": "Færdig",
+       "config-page-complete": "Færdig!",
        "config-page-restart": "Genstarte installation",
        "config-page-readme": "Læs mig",
        "config-page-copying": "Kopiering",
-       "config-page-upgradedoc": "Opgradering",
+       "config-page-upgradedoc": "Opgraderer",
        "config-page-existingwiki": "Eksisterende wiki",
        "config-help-restart": "Vil du rydde alle gemte data, du har indtastet og genstarte installationen?",
-       "config-restart": "Ja, genstarte den",
-       "config-env-php": "PHP  $1  er installeret.",
+       "config-restart": "Ja, genstart den",
+       "config-env-php": "PHP $1 er installeret.",
        "config-db-type": "Databasetype:",
-       "config-db-host": "Database vært:",
+       "config-db-host": "Databasevært:",
        "config-db-name": "Databasenavn:",
        "config-mysql-old": "MySQL $1 eller nyere kræves. Du har $2.",
        "config-header-mysql": "MySQL-indstillinger",
index 5a7d148..afa7d72 100644 (file)
        "config-localsettings-key": "Pihi hoʻopuka hou:",
        "config-localsettings-badkey": "Hewa ka pihi.",
        "config-upgrade-key-missing": "Loaʻa he hoʻonohona mai mua o MīkiaWiki mai mua.\nNo ka hoʻopuka hou ʻana o kēia hoʻonohona, e ʻoluʻolu, e kau i kēia laina lalo ma lalo o kāu <code>LocalSettings.php</code>:\n\n$1",
+       "config-localsettings-incomplete": "ʻAʻole piha pono kēia <code>LocalSettings.php</code> nei.\nʻAʻole hoʻopaʻa ʻia ka hualau $1.\nE hoʻololi iā <code>LocalSettings.php</code> i hiki ke hoʻopaʻa i ka hualau, a laila e kaomi iā \"{{int:Config-continue}}\" ke ʻoluʻolu.",
+       "config-localsettings-connection-error": "Ua loaʻa i ke kuʻia i ka hoʻokuʻi ʻana i ke hōkeo ʻikepili ma muli o ka hana ʻana o ka makemake e kākau ʻia ma <code>LocalSettings.php</code>. E ʻoluʻolu e hoʻoponopono i kēia makemake a hana hou.\n\n$1",
+       "config-session-error": "Kuʻia ka wā hoʻohana hoʻomaka: $1",
+       "config-session-expired": "Ua pau kāu ʻikepili wā hoʻohana.\nOla ka wā hoʻohana no ka manawa o $1.\nHiki iā ʻoe ke hoʻonui i kēia wā ma o ka hoʻololi ʻana o <code>session.gc_maxlifetime</code> ma php.ini.\nE hana hou i ka hana hoʻoukana.",
+       "config-no-session": "Ua nalo kāu ʻikepili wā hoʻohana!\nE hōʻoia i kāu php.ini a me ka hoʻopaʻa ʻana o <code>session.save_path</code> i ke kumu kūpono.",
        "config-your-language": "Kāu ʻōlelo:",
        "config-your-language-help": "E koho i kekahi ʻōlelo no ka hoʻohana ʻana ma loko o ka hana hoʻonohona.",
        "config-wiki-language": "ʻŌlelo Wiki:",
@@ -33,6 +38,7 @@
        "config-page-copying": "Kope",
        "config-page-upgradedoc": "Ka Hoʻopuka ʻana",
        "config-page-existingwiki": "Ka wiki nei",
+       "config-help-restart": "He ʻoiaʻiʻo kāu makemake no ka holoi pono o nā ʻikepili mālamalia a pau āu i kikokiko a hoʻomaka hou i ka hana hoʻouka?",
        "config-restart": "ʻAe, e hōʻano hou",
        "config-db-type": "ʻAno hōkeo ʻikepili:",
        "config-db-name": "Inoa hōkeo ʻikepili",
index 4b0c692..190ee04 100644 (file)
@@ -1,5 +1,10 @@
 {
-       "@metadata": [],
+       "@metadata": {
+               "authors": [
+                       "Jason924tw"
+               ]
+       },
+       "config-information": "文訊",
        "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]"
 }
index 2f2825d..8bdfe0c 100644 (file)
@@ -45,7 +45,7 @@
        "config-restart": "Ya, mula semula",
        "config-welcome": "=== Pemeriksaan persekitaran ===\nPemeriksaan asas kini boleh dilakukan untuk melihat jika persekitaran ini adalah sesuai untuk pemasangan MediaWiki.\nIngat untuk memasukkan maklumat ini jika anda mahukan sokongan tentang bagaimana untuk menyelesaikan pemasangan.",
        "config-copyright": "=== Hakcipta dan Syarat-Syarat ===\n\n$1\n\nProgram ini merupakan perisian bebas; anda boleh mengedarkannya semula dan/atau mengubahsuainya di bawah syarat-syarat Lesen Awam GNU seperti yang diterbitkan oleh Yayasan Perisian Bebas; sama ada versi 2 Lesen ini atau (mengikut pilihan anda) mana-mana versi selepas ini.\n\nProgram ini diedarkan dengan harapan bahawa ia akan menjadi berguna, tetapi '''tanpa sebarang waranti'''; tanpa jaminan yang tersirat '''kebolehdagangan''' atau '''kesesuaian untuk tujuan tertentu'''.\nLihat Lesen Awam GNU untuk maklumat lanjut.\n\nAnda sepatutnya telah menerima <doclink href=Copying> satu salinan Lesen Awam GNU </doclink> bersama-sama dengan program ini, jika tidak, menulis surat kepada Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, atau [http://www.gnu.org/copyleft/gpl.html membacanya dalam talian].",
-       "config-sidebar": "* [//www.mediawiki.org Laman utama MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Panduan Pengguna]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Panduan Pentadbir]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soalan lazim]\n----\n* <doclink href=Readme>Baca saya</doclink>\n* <doclink href=ReleaseNotes>Nota keluaran</doclink>\n* <doclink href=Copying>Menyalin</doclink>\n* <doclink href=UpgradeDoc>Menaik taraf</doclink>",
+       "config-sidebar": "* [//www.mediawiki.org Laman utama MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Panduan Pengguna]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Panduan Penyelia]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soalan lazim]\n----\n* <doclink href=Readme>Baca saya</doclink>\n* <doclink href=ReleaseNotes>Nota keluaran</doclink>\n* <doclink href=Copying>Menyalin</doclink>\n* <doclink href=UpgradeDoc>Menaik taraf</doclink>",
        "config-env-good": "Persekitaran telah diperiksa.\nAnda boleh memasang MediaWiki.",
        "config-env-bad": "Persekitaran telah diperiksa. \nAnda tidak boleh memasang MediaWiki.",
        "config-env-php": "PHP $1 dipasang.",
diff --git a/includes/installer/i18n/no.json b/includes/installer/i18n/no.json
deleted file mode 100644 (file)
index a8c9833..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "@metadata": [],
-    "mainpagetext": "'''MediaWiki-programvaren er nå installert.'''"
-}
index fb88379..c129ab9 100644 (file)
@@ -1,4 +1,13 @@
 {
-       "@metadata": [],
+       "@metadata": {
+               "authors": [
+                       "Aalam"
+               ]
+       },
+       "config-information": "ਜਾਣਕਾਰੀ",
+       "config-your-language": "ਤੁਹਾਡੀ ਭਾਸ਼ਾ:",
+       "config-back": "← ਪਿੱਛੇ",
+       "config-continue": "ਜਾਰੀ ਰੱਖੋ →",
+       "config-page-language": "ਭਾਸ਼ਾ",
        "mainpagetext": "'''ਮੀਡਿਆਵਿਕਿ ਠੀਕ ਤਰ੍ਹਾਂ ਇੰਸਟਾਲ ਹੋ ਗਿਆ ਹੈ।'''"
 }
index b0bde75..0c48ffa 100644 (file)
        "config-license-gfdl": "GNU licencja wolnej dokumentacji 1.3 lub nowsza",
        "config-license-pd": "Domena publiczna",
        "config-license-cc-choose": "Wybierz własną licencję Creative Commons",
-       "config-license-help": "Wiele publicznych wiki umieszcza wszystkie dopisane treści na [http://freedomdefined.org/Definition wolnej licencji].\nTo pomaga tworzyć poczucie wspólnoty i zachęca do długoterminowego wkładu.\nNie jest to zazwyczaj konieczne w prywatnych lub firmowych wiki.\n\nJeśli chcesz móc użyć tekstu z Wikipedii i chcesz Wikipedia mogła zaakceptować tekst skopiowany z twojej wiki, należy wybrać '''Creative Commons Attribution Share Alike'''.\n\nWikipedia używała poprzednio GNU Free Documentation License.\nGFDL jest poprawną licencję, ale trudno ją zrozumieć.\nTrudno także ponowne użyć zawartości na licencji GFDL.",
+       "config-license-help": "Wiele publicznych wiki umieszcza wszystkie dopisane treści na [http://freedomdefined.org/Definition wolnej licencji].\nPomaga to tworzyć poczucie wspólnoty i zachęca do długoterminowego wkładu.\nNie jest to zazwyczaj konieczne w prywatnych lub firmowych wiki.\n\nJeśli chcesz móc użyć tekstu z Wikipedii i chcesz Wikipedia mogła zaakceptować tekst skopiowany z twojej wiki, należy wybrać <strong>{{int:config-license-cc-by-sa}}</strong>.\n\nWikipedia używała poprzednio GNU Free Documentation License.\nGFDL jest poprawną licencję, ale trudno ją zrozumieć.\nTrudno także ponowne użyć zawartości na licencji GFDL.",
        "config-email-settings": "Ustawienia e-maili",
        "config-enable-email": "Włącz wychodzące wiadomości e–mail",
        "config-enable-email-help": "Jeśli chcesz, aby działał e-mail, [http://www.php.net/manual/en/mail.configuration.php Ustawienia poczty PHP] muszą być poprawnie wprowadzone.\nJeśli nie chcesz jakichś funkcji poczty e-mail, można je wyłączyć tutaj.",
index 114839e..a827fac 100644 (file)
        "config-ns-site-name": "O mesmo que o nome da wiki: $1",
        "config-ns-other": "Outro (especifique)",
        "config-ns-other-default": "AMinhaWiki",
-       "config-project-namespace-help": "Seguindo o exemplo da Wikipedia, muitas wikis mantêm as páginas das suas normas e políticas, separadas das páginas de conteúdo, num \"'''espaço nominal do projeto'''\".\nTodos os nomes das páginas neste espaço nominal começam com um determinado prefixo, que pode especificar aqui.\nTradicionalmente, este prefixo deriva do nome da wiki, mas não pode conter caracteres de pontuação, como \"#\" ou \":\".",
+       "config-project-namespace-help": "Seguindo o exemplo da Wikipédia, muitas wikis mantêm as páginas das suas normas e políticas, separadas das páginas de conteúdo, num \"'''domínio do projeto'''\".\nTodos os nomes das páginas neste domínio começam com um determinado prefixo, que pode especificar aqui.\nTradicionalmente, este prefixo deriva do nome da wiki, mas não pode conter caracteres de pontuação, como \"#\" ou \":\".",
        "config-ns-invalid": "O espaço nominal especificado \"<nowiki>$1</nowiki>\" é inválido.\nIntroduza um espaço nominal de projeto diferente.",
        "config-ns-conflict": "O espaço nominal que especificou, \"<nowiki>$1</nowiki>\", cria um conflito com um dos espaços nominais padrão do MediaWiki.\nEspecifique um espaço nominal do projeto diferente.",
        "config-admin-box": "Conta de administrador",
index 82dd202..b297a19 100644 (file)
        "config-db-username": "数据库用户名:",
        "config-db-password": "数据库密码:",
        "config-db-password-empty": "请为新数据库用户$1输入密码。尽管您可以创建不使用密码的用户,但这样做并不安全。",
-       "config-db-username-empty": "您必须输入用于“{{int:config-db-username}}”的值",
+       "config-db-username-empty": "您必须输入用于“{{int:config-db-username}}”的值",
        "config-db-install-username": "请输入在安装过程中用于连接数据库的用户名。请勿输入MediaWiki帐号的用户名,请输入您数据库的用户名。",
        "config-db-install-password": "请输入在安装过程中用于连接数据库的密码。请勿输入MediaWiki帐号的密码,请输入您数据库的密码。",
        "config-db-install-help": "请输入在安装过程中用于连接数据库的用户名和密码。",
index 61ee166..cb6cefb 100644 (file)
        "config-ns-invalid": "您指定的命名空間 \"<nowiki>$1</nowiki>\" 無效,\n請指定另一個專案命名空間。",
        "config-ns-conflict": "您指定的命名空間 \"<nowiki>$1</nowiki>\" 與 MediaWiki 預設的命名空間衝突。\n請指定另一個專案命名空間。",
        "config-admin-box": "管理員帳號",
-       "config-admin-name": "您的用戶名:",
+       "config-admin-name": "您的使用者名稱:",
        "config-admin-password": "密碼:",
        "config-admin-password-confirm": "再次輸入密碼:",
        "config-admin-help": "在此輸入您想使用的使用者名稱,例如 \"Joe Bloggs\"。\n此名稱將用來登入 Wiki。",
        "config-pg-no-plpgsql": "您需要安裝 PL/pgSQL 到資料庫 $1",
        "config-pg-no-create-privs": "您所指定用來給安裝程序使用的帳號沒有足夠的權限可以建立新帳號。",
        "config-pg-not-in-role": "您指定用來給網頁存取的帳號已存在。\n您指定用來給安裝程序使用的的帳號既不是管理者,也不是給網頁存取使用者,因此無法使用網頁存取使用者的權限建立物件。\n\nMediaWiki 目前需要使用由網頁使用者所建立的資料表。請指定另一個網頁使用者的帳號名稱,或點選 \"返回\" 指定具有適當權限使用者給安裝程序使用。",
-       "config-install-user": "正在建立資料庫用戶",
-       "config-install-user-alreadyexists": "用戶 \"$1\" 已存在",
-       "config-install-user-create-failed": "建立用戶 \"$1\" 失敗:$2",
+       "config-install-user": "正在建立資料庫使用者",
+       "config-install-user-alreadyexists": "使用者 \"$1\" 已存在",
+       "config-install-user-create-failed": "建立使用者 \"$1\" 失敗:$2",
        "config-install-user-grant-failed": "授序權限給使用者 \"$1\" 失敗:$2",
-       "config-install-user-missing": "指定的用戶 \"$1\" 不存在。",
+       "config-install-user-missing": "指定的使用者 \"$1\" 不存在。",
        "config-install-user-missing-create": "指定的使用者 \"$1\" 不存在。\n若您想建立帳號,請勾選下方 \"建立帳號\" 核選方塊。",
        "config-install-tables": "正在建立資料表",
        "config-install-tables-exist": "<strong>警告:</strong> MediaWiki 資料表已存在,略過建立資料表。",
index 9a4073f..c5e7f2e 100644 (file)
@@ -54,7 +54,11 @@ class JobRunner {
         * This method outputs status information only if a debug handler was set.
         * Any exceptions are caught and logged, but are not reported as output.
         *
-        * @param array $options
+        * @param array $options Map of parameters:
+        *    - type     : the job type (or false for the default types)
+        *    - maxJobs  : maximum number of jobs to run
+        *    - maxTime  : maximum time in seconds before stopping
+        *    - throttle : whether to respect job backoff configuration
         * @return array Summary response that can easily be JSON serialized
         */
        public function run( array $options ) {
index 34c302e..2561f2f 100644 (file)
@@ -84,7 +84,6 @@ class DoubleRedirectJob extends Job {
        /**
         * @param Title $title
         * @param array|bool $params
-        * @param int $id
         */
        function __construct( $title, $params = false ) {
                parent::__construct( 'fixDoubleRedirect', $title, $params );
index 671e812..8c982c4 100644 (file)
@@ -116,7 +116,7 @@ class MultiHttpClient {
         * This is true for the request headers and the response headers. Integer-indexed
         * method/URL entries will also be changed to use the corresponding string keys.
         *
-        * @param array $req Map of HTTP request arrays
+        * @param array $reqs Map of HTTP request arrays
         * @param array $opts
         *   - connTimeout     : connection timeout per request
         *   - reqTimeout      : post-connection timeout per request
index 053c586..dd41c38 100644 (file)
@@ -97,7 +97,7 @@ class BitmapMetadataHandler {
        /** Add misc metadata. Warning: atm if the metadata category
         * doesn't have a priority, it will be silently discarded.
         *
-        * @param array $meta Array of metadata values
+        * @param array $metaArray Array of metadata values
         * @param string $type Type. defaults to other. if two things have the same type they're merged
         */
        function addMetadata( $metaArray, $type = 'other' ) {
index d285c0c..818bb25 100644 (file)
@@ -586,7 +586,7 @@ class Exif {
                return 2; // We don't need no bloddy constants!
        }
 
-       /**#@+
+       /**
         * Validates if a tag value is of the type it should be according to the Exif spec
         *
         * @param mixed $in The input value to check
index 969bb72..13c2a91 100644 (file)
@@ -743,7 +743,7 @@ abstract class MediaHandler {
                // Do nothing
        }
 
-       /*
+       /**
         * True if the handler can rotate the media
         * @since 1.21
         * @return bool
index a0ce806..74e5e04 100644 (file)
@@ -107,6 +107,7 @@ class SvgHandler extends ImageHandler {
        /**
         * What language to render file in if none selected.
         *
+        * @param File $file
         * @return string Language code.
         */
        public function getDefaultRenderLanguage( File $file ) {
@@ -115,6 +116,8 @@ class SvgHandler extends ImageHandler {
 
        /**
         * We do not support making animated svg thumbnails
+        * @param File $file
+        * @return bool
         */
        function canAnimateThumbnail( $file ) {
                return false;
index 04099c3..aa77fa8 100644 (file)
@@ -155,7 +155,7 @@ class XCFHandler extends BitmapHandler {
         *
         * @param File $file The image object, or false if there isn't one.
         *   Warning, FSFile::getPropsFromPath might pass an (object)array() instead (!)
-        * @param string $path The filename
+        * @param string $filename The filename
         * @return string
         */
        public function getMetadata( $file, $filename ) {
@@ -218,6 +218,8 @@ class XCFHandler extends BitmapHandler {
         *
         * Image magick doesn't support indexed xcf files as of current
         * writing (as of 6.8.9-3)
+        * @param File $file
+        * @return bool
         */
        public function canRender( $file ) {
                wfSuppressWarnings();
index 154c85d..cdbd5ab 100644 (file)
@@ -1122,7 +1122,6 @@ class XMPReader {
                }
        }
 
-       // @codingStandardsIgnoreStart Long line that cannot be broken
        /**
         * Process attributes.
         * Simple values can be stored as either a tag or attribute
@@ -1130,15 +1129,16 @@ class XMPReader {
         * Often the initial "<rdf:Description>" tag just has all the simple
         * properties as attributes.
         *
+        * @codingStandardsIgnoreStart Long line that cannot be broken
         * @par Example:
         * @code
         * <rdf:Description rdf:about="" xmlns:exif="http://ns.adobe.com/exif/1.0/" exif:DigitalZoomRatio="0/10">
         * @endcode
+        * @codingStandardsIgnoreEnd
         *
         * @param array $attribs Array attribute=>value
         * @throws MWException
         */
-       // @codingStandardsIgnoreEnd
        private function doAttribs( $attribs ) {
                // first check for rdf:parseType attribute, as that can change
                // how the attributes are interperted.
index 79a6841..59191d7 100644 (file)
@@ -78,8 +78,8 @@ class MemcachedBagOStuff extends BagOStuff {
        }
 
        /**
-        * @param string $key
         * @param mixed $casToken
+        * @param string $key
         * @param mixed $value
         * @param int $exptime
         * @return bool
index 7990053..41eebfb 100644 (file)
@@ -106,7 +106,7 @@ class MWMemcached {
         * @var array
         * @access public
         */
-       var $stats;
+       public $stats;
 
        // }}}
        // {{{ private
@@ -117,7 +117,7 @@ class MWMemcached {
         * @var array
         * @access private
         */
-       var $_cache_sock;
+       public $_cache_sock;
 
        /**
         * Current debug status; 0 - none to 9 - profiling
@@ -125,7 +125,7 @@ class MWMemcached {
         * @var bool
         * @access private
         */
-       var $_debug;
+       public $_debug;
 
        /**
         * Dead hosts, assoc array, 'host'=>'unixtime when ok to check again'
@@ -133,7 +133,7 @@ class MWMemcached {
         * @var array
         * @access private
         */
-       var $_host_dead;
+       public $_host_dead;
 
        /**
         * Is compression available?
@@ -141,7 +141,7 @@ class MWMemcached {
         * @var bool
         * @access private
         */
-       var $_have_zlib;
+       public $_have_zlib;
 
        /**
         * Do we want to use compression?
@@ -149,7 +149,7 @@ class MWMemcached {
         * @var bool
         * @access private
         */
-       var $_compress_enable;
+       public $_compress_enable;
 
        /**
         * At how many bytes should we compress?
@@ -157,7 +157,7 @@ class MWMemcached {
         * @var int
         * @access private
         */
-       var $_compress_threshold;
+       public $_compress_threshold;
 
        /**
         * Are we using persistent links?
@@ -165,7 +165,7 @@ class MWMemcached {
         * @var bool
         * @access private
         */
-       var $_persistent;
+       public $_persistent;
 
        /**
         * If only using one server; contains ip:port to connect to
@@ -173,7 +173,7 @@ class MWMemcached {
         * @var string
         * @access private
         */
-       var $_single_sock;
+       public $_single_sock;
 
        /**
         * Array containing ip:port or array(ip:port, weight)
@@ -181,7 +181,7 @@ class MWMemcached {
         * @var array
         * @access private
         */
-       var $_servers;
+       public $_servers;
 
        /**
         * Our bit buckets
@@ -189,7 +189,7 @@ class MWMemcached {
         * @var array
         * @access private
         */
-       var $_buckets;
+       public $_buckets;
 
        /**
         * Total # of bit buckets we have
@@ -197,7 +197,7 @@ class MWMemcached {
         * @var int
         * @access private
         */
-       var $_bucketcount;
+       public $_bucketcount;
 
        /**
         * # of total servers we have
@@ -205,7 +205,7 @@ class MWMemcached {
         * @var int
         * @access private
         */
-       var $_active;
+       public $_active;
 
        /**
         * Stream timeout in seconds. Applies for example to fread()
@@ -213,7 +213,7 @@ class MWMemcached {
         * @var int
         * @access private
         */
-       var $_timeout_seconds;
+       public $_timeout_seconds;
 
        /**
         * Stream timeout in microseconds
@@ -221,17 +221,17 @@ class MWMemcached {
         * @var int
         * @access private
         */
-       var $_timeout_microseconds;
+       public $_timeout_microseconds;
 
        /**
         * Connect timeout in seconds
         */
-       var $_connect_timeout;
+       public $_connect_timeout;
 
        /**
         * Number of connection attempts for each server
         */
-       var $_connect_attempts;
+       public $_connect_attempts;
 
        // }}}
        // }}}
index c7d2f13..ae8cc5b 100644 (file)
@@ -342,6 +342,7 @@ class RedisBagOStuff extends BagOStuff {
 
        /**
         * Get a Redis object with a connection suitable for fetching the specified key
+        * @param string $key
         * @return array (server, RedisConnRef) or (false, false)
         */
        protected function getConnection( $key ) {
index 32996ac..5872079 100644 (file)
@@ -27,6 +27,9 @@
  * @ingroup Cache
  */
 class SqlBagOStuff extends BagOStuff {
+       /** @var LoadBalancer */
+       protected $lb;
+
        protected $serverInfos;
 
        /** @var array */
@@ -143,12 +146,14 @@ class SqlBagOStuff extends BagOStuff {
                                $db = DatabaseBase::factory( $type, $info );
                                $db->clearFlag( DBO_TRX );
                        } else {
-                               // We must keep a separate connection to MySQL in order to avoid deadlocks
-                               // However, SQLite has an opposite behavior.
-                               // @todo get this trick to work on PostgreSQL too
+                               /*
+                                * We must keep a separate connection to MySQL in order to avoid deadlocks
+                                * However, SQLite has an opposite behavior. And PostgreSQL needs to know
+                                * if we are in transaction or no
+                                */
                                if ( wfGetDB( DB_MASTER )->getType() == 'mysql' ) {
-                                       $lb = wfGetLBFactory()->newMainLB();
-                                       $db = $lb->getConnection( DB_MASTER );
+                                       $this->lb = wfGetLBFactory()->newMainLB();
+                                       $db = $this->lb->getConnection( DB_MASTER );
                                        $db->clearFlag( DBO_TRX ); // auto-commit mode
                                } else {
                                        $db = wfGetDB( DB_MASTER );
@@ -516,6 +521,7 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
+        * @param DatabaseBase $db
         * @param string $exptime
         * @return bool
         */
index 2a882ac..78a512c 100644 (file)
@@ -52,7 +52,7 @@ class WinCacheBagOStuff extends BagOStuff {
         * Store a value in the WinCache object cache
         *
         * @param string $key Cache key
-        * @param mixed $valueObject Value to store
+        * @param mixed $value Value to store
         * @param int $expire Expiration time
         * @return bool
         */
index 4a6e002..da88a69 100644 (file)
@@ -1551,9 +1551,9 @@ class Article implements Page {
                $user = $this->getContext()->getUser();
 
                # Check permissions
-               $permission_errors = $title->getUserPermissionsErrors( 'delete', $user );
-               if ( count( $permission_errors ) ) {
-                       throw new PermissionsError( 'delete', $permission_errors );
+               $permissionErrors = $title->getUserPermissionsErrors( 'delete', $user );
+               if ( count( $permissionErrors ) ) {
+                       throw new PermissionsError( 'delete', $permissionErrors );
                }
 
                # Read-only check...
@@ -1624,7 +1624,20 @@ class Article implements Page {
 
                // If the page has a history, insert a warning
                if ( $hasHistory ) {
-                       $revisions = $this->mTitle->estimateRevisionCount();
+                       $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).
+                       $dbr = wfGetDB( DB_SLAVE );
+                       $revisions = $edits = (int)$dbr->selectField(
+                               'revision',
+                               'COUNT(rev_page)',
+                               array( 'rev_page' => $title->getArticleID() ),
+                               __METHOD__
+                       );
+
                        // @todo FIXME: i18n issue/patchwork message
                        $this->getContext()->getOutput()->addHTML( '<strong class="mw-delete-warning-revisions">' .
                                wfMessage( 'historywarning' )->numParams( $revisions )->parse() .
@@ -1635,7 +1648,7 @@ class Article implements Page {
                                '</strong>'
                        );
 
-                       if ( $this->mTitle->isBigDeletion() ) {
+                       if ( $title->isBigDeletion() ) {
                                global $wgDeleteRevisionsLimit;
                                $this->getContext()->getOutput()->wrapWikiMsg( "<div class='error'>\n$1\n</div>\n",
                                        array(
index be5ce3f..b62f40d 100644 (file)
@@ -2314,8 +2314,8 @@ class WikiPage implements Page, IDBAccessObject {
         * @param Content $content Content submitted
         * @param User $user The relevant user
         * @param string $comment Comment submitted
-        * @param string $serialisation_format Format for storing the content in the database
         * @param bool $minor Whereas it's a minor modification
+        * @param string $serialisation_format Format for storing the content in the database
         */
        public function doQuickEditContent( Content $content, User $user, $comment = '', $minor = false,
                $serialisation_format = null
@@ -3505,17 +3505,6 @@ class WikiPage implements Page, IDBAccessObject {
                return $wgParser->preSaveTransform( $text, $this->mTitle, $user, $popts );
        }
 
-       /**
-        * Get the  approximate revision count of this page.
-        *
-        * @deprecated since 1.19; use Title::estimateRevisionCount() instead.
-        * @return int
-        */
-       public function estimateRevisionCount() {
-               wfDeprecated( __METHOD__, '1.19' );
-               return $this->mTitle->estimateRevisionCount();
-       }
-
        /**
         * Update the article's restriction field, and leave a log entry.
         *
index 6fb3e0a..94abc26 100644 (file)
@@ -32,7 +32,7 @@ class CacheTime {
         */
        public $mUsedOptions;
 
-       var     $mVersion = Parser::VERSION,  # Compatibility check
+       public $mVersion = Parser::VERSION,  # Compatibility check
                $mCacheTime = '',             # Time when this object was generated, or -1 for uncacheable. Used in ParserCache.
                $mCacheExpiry = null,         # Seconds after which the object should expire, use 0 for uncachable. Used in ParserCache.
                $mContainsOldMagic,           # Boolean variable indicating if the input contained variables like {{CURRENTDAY}}
@@ -41,14 +41,14 @@ class CacheTime {
        /**
         * @return string TS_MW timestamp
         */
-       function getCacheTime() {
+       public function getCacheTime() {
                return wfTimestamp( TS_MW, $this->mCacheTime );
        }
 
        /**
         * @return bool
         */
-       function containsOldMagic() {
+       public function containsOldMagic() {
                return $this->mContainsOldMagic;
        }
 
@@ -56,7 +56,7 @@ class CacheTime {
         * @param bool $com
         * @return bool
         */
-       function setContainsOldMagic( $com ) {
+       public function setContainsOldMagic( $com ) {
                return wfSetVar( $this->mContainsOldMagic, $com );
        }
 
@@ -66,7 +66,7 @@ class CacheTime {
         * @param string $t
         * @return string
         */
-       function setCacheTime( $t ) {
+       public function setCacheTime( $t ) {
                return wfSetVar( $this->mCacheTime, $t );
        }
 
@@ -74,7 +74,7 @@ class CacheTime {
         * @since 1.23
         * @return int|null Revision id, if any was set
         */
-       function getCacheRevisionId() {
+       public function getCacheRevisionId() {
                return $this->mCacheRevisionId;
        }
 
@@ -82,7 +82,7 @@ class CacheTime {
         * @since 1.23
         * @param int $id Revision id
         */
-       function setCacheRevisionId( $id ) {
+       public function setCacheRevisionId( $id ) {
                $this->mCacheRevisionId = $id;
        }
 
@@ -96,7 +96,7 @@ class CacheTime {
         *
         * @param int $seconds
         */
-       function updateCacheExpiry( $seconds ) {
+       public function updateCacheExpiry( $seconds ) {
                $seconds = (int)$seconds;
 
                if ( $this->mCacheExpiry === null || $this->mCacheExpiry > $seconds ) {
@@ -118,7 +118,7 @@ class CacheTime {
         * value of $wgParserCacheExpireTime.
         * @return int|mixed|null
         */
-       function getCacheExpiry() {
+       public function getCacheExpiry() {
                global $wgParserCacheExpireTime;
 
                if ( $this->mCacheTime < 0 ) {
@@ -147,7 +147,7 @@ class CacheTime {
        /**
         * @return bool
         */
-       function isCacheable() {
+       public function isCacheable() {
                return $this->getCacheExpiry() > 0;
        }
 
index 84e7fe2..cd1f32d 100644 (file)
@@ -30,7 +30,7 @@ class CoreParserFunctions {
         * @param Parser $parser
         * @return void
         */
-       static function register( $parser ) {
+       public static function register( $parser ) {
                global $wgAllowDisplayTitle, $wgAllowSlowParserFunctions;
 
                # Syntax for arguments (see Parser::setFunctionHook):
@@ -84,7 +84,7 @@ class CoreParserFunctions {
         * @param string $part1
         * @return array
         */
-       static function intFunction( $parser, $part1 = '' /*, ... */ ) {
+       public static function intFunction( $parser, $part1 = '' /*, ... */ ) {
                if ( strval( $part1 ) !== '' ) {
                        $args = array_slice( func_get_args(), 2 );
                        $message = wfMessage( $part1, $args )
@@ -103,7 +103,7 @@ class CoreParserFunctions {
         *
         * @return string
         */
-       static function formatDate( $parser, $date, $defaultPref = null ) {
+       public static function formatDate( $parser, $date, $defaultPref = null ) {
                $lang = $parser->getFunctionLang();
                $df = DateFormatter::getInstance( $lang );
 
@@ -121,7 +121,7 @@ class CoreParserFunctions {
                return $date;
        }
 
-       static function ns( $parser, $part1 = '' ) {
+       public static function ns( $parser, $part1 = '' ) {
                global $wgContLang;
                if ( intval( $part1 ) || $part1 == "0" ) {
                        $index = intval( $part1 );
@@ -135,7 +135,7 @@ class CoreParserFunctions {
                }
        }
 
-       static function nse( $parser, $part1 = '' ) {
+       public static function nse( $parser, $part1 = '' ) {
                $ret = self::ns( $parser, $part1 );
                if ( is_string( $ret ) ) {
                        $ret = wfUrlencode( str_replace( ' ', '_', $ret ) );
@@ -155,7 +155,7 @@ class CoreParserFunctions {
         * @param string $arg (optional): The type of encoding.
         * @return string
         */
-       static function urlencode( $parser, $s = '', $arg = null ) {
+       public static function urlencode( $parser, $s = '', $arg = null ) {
                static $magicWords = null;
                if ( is_null( $magicWords ) ) {
                        $magicWords = new MagicWordArray( array( 'url_path', 'url_query', 'url_wiki' ) );
@@ -181,12 +181,12 @@ class CoreParserFunctions {
                return $parser->markerSkipCallback( $s, $func );
        }
 
-       static function lcfirst( $parser, $s = '' ) {
+       public static function lcfirst( $parser, $s = '' ) {
                global $wgContLang;
                return $wgContLang->lcfirst( $s );
        }
 
-       static function ucfirst( $parser, $s = '' ) {
+       public static function ucfirst( $parser, $s = '' ) {
                global $wgContLang;
                return $wgContLang->ucfirst( $s );
        }
@@ -196,7 +196,7 @@ class CoreParserFunctions {
         * @param string $s
         * @return string
         */
-       static function lc( $parser, $s = '' ) {
+       public static function lc( $parser, $s = '' ) {
                global $wgContLang;
                return $parser->markerSkipCallback( $s, array( $wgContLang, 'lc' ) );
        }
@@ -206,16 +206,16 @@ class CoreParserFunctions {
         * @param string $s
         * @return string
         */
-       static function uc( $parser, $s = '' ) {
+       public static function uc( $parser, $s = '' ) {
                global $wgContLang;
                return $parser->markerSkipCallback( $s, array( $wgContLang, 'uc' ) );
        }
 
-       static function localurl( $parser, $s = '', $arg = null ) {
+       public static function localurl( $parser, $s = '', $arg = null ) {
                return self::urlFunction( 'getLocalURL', $s, $arg );
        }
 
-       static function localurle( $parser, $s = '', $arg = null ) {
+       public static function localurle( $parser, $s = '', $arg = null ) {
                $temp = self::urlFunction( 'getLocalURL', $s, $arg );
                if ( !is_string( $temp ) ) {
                        return $temp;
@@ -224,11 +224,11 @@ class CoreParserFunctions {
                }
        }
 
-       static function fullurl( $parser, $s = '', $arg = null ) {
+       public static function fullurl( $parser, $s = '', $arg = null ) {
                return self::urlFunction( 'getFullURL', $s, $arg );
        }
 
-       static function fullurle( $parser, $s = '', $arg = null ) {
+       public static function fullurle( $parser, $s = '', $arg = null ) {
                $temp = self::urlFunction( 'getFullURL', $s, $arg );
                if ( !is_string( $temp ) ) {
                        return $temp;
@@ -237,11 +237,11 @@ class CoreParserFunctions {
                }
        }
 
-       static function canonicalurl( $parser, $s = '', $arg = null ) {
+       public static function canonicalurl( $parser, $s = '', $arg = null ) {
                return self::urlFunction( 'getCanonicalURL', $s, $arg );
        }
 
-       static function canonicalurle( $parser, $s = '', $arg = null ) {
+       public static function canonicalurle( $parser, $s = '', $arg = null ) {
                $temp = self::urlFunction( 'getCanonicalURL', $s, $arg );
                if ( !is_string( $temp ) ) {
                        return $temp;
@@ -250,7 +250,7 @@ class CoreParserFunctions {
                }
        }
 
-       static function urlFunction( $func, $s = '', $arg = null ) {
+       public static function urlFunction( $func, $s = '', $arg = null ) {
                $title = Title::newFromText( $s );
                # Due to order of execution of a lot of bits, the values might be encoded
                # before arriving here; if that's true, then the title can't be created
@@ -281,7 +281,7 @@ class CoreParserFunctions {
         * @param string $arg
         * @return string
         */
-       static function formatnum( $parser, $num = '', $arg = null ) {
+       public static function formatnum( $parser, $num = '', $arg = null ) {
                if ( self::matchAgainstMagicword( 'rawsuffix', $arg ) ) {
                        $func = array( $parser->getFunctionLang(), 'parseFormattedNumber' );
                } elseif ( self::matchAgainstMagicword( 'nocommafysuffix', $arg ) ) {
@@ -298,7 +298,7 @@ class CoreParserFunctions {
         * @param string $word
         * @return string
         */
-       static function grammar( $parser, $case = '', $word = '' ) {
+       public static function grammar( $parser, $case = '', $word = '' ) {
                $word = $parser->killMarkers( $word );
                return $parser->getFunctionLang()->convertGrammar( $word, $case );
        }
@@ -308,7 +308,7 @@ class CoreParserFunctions {
         * @param string $username
         * @return string
         */
-       static function gender( $parser, $username ) {
+       public static function gender( $parser, $username ) {
                wfProfileIn( __METHOD__ );
                $forms = array_slice( func_get_args(), 2 );
 
@@ -350,7 +350,7 @@ class CoreParserFunctions {
         * @param string $text
         * @return string
         */
-       static function plural( $parser, $text = '' ) {
+       public static function plural( $parser, $text = '' ) {
                $forms = array_slice( func_get_args(), 2 );
                $text = $parser->getFunctionLang()->parseFormattedNumber( $text );
                settype( $text, ctype_digit( $text ) ? 'int' : 'float' );
@@ -363,9 +363,10 @@ class CoreParserFunctions {
         *
         * @param Parser $parser Parent parser
         * @param string $text Desired title text
+        * @param string $uarg
         * @return string
         */
-       static function displaytitle( $parser, $text = '', $uarg = '' ) {
+       public static function displaytitle( $parser, $text = '', $uarg = '' ) {
                global $wgRestrictDisplayTitle;
 
                static $magicWords = null;
@@ -459,7 +460,7 @@ class CoreParserFunctions {
                return $mwObject->matchStartToEnd( $value );
        }
 
-       static function formatRaw( $num, $raw ) {
+       public static function formatRaw( $num, $raw ) {
                if ( self::matchAgainstMagicword( 'rawsuffix', $raw ) ) {
                        return $num;
                } else {
@@ -467,35 +468,35 @@ class CoreParserFunctions {
                        return $wgContLang->formatNum( $num );
                }
        }
-       static function numberofpages( $parser, $raw = null ) {
+       public static function numberofpages( $parser, $raw = null ) {
                return self::formatRaw( SiteStats::pages(), $raw );
        }
-       static function numberofusers( $parser, $raw = null ) {
+       public static function numberofusers( $parser, $raw = null ) {
                return self::formatRaw( SiteStats::users(), $raw );
        }
-       static function numberofactiveusers( $parser, $raw = null ) {
+       public static function numberofactiveusers( $parser, $raw = null ) {
                return self::formatRaw( SiteStats::activeUsers(), $raw );
        }
-       static function numberofarticles( $parser, $raw = null ) {
+       public static function numberofarticles( $parser, $raw = null ) {
                return self::formatRaw( SiteStats::articles(), $raw );
        }
-       static function numberoffiles( $parser, $raw = null ) {
+       public static function numberoffiles( $parser, $raw = null ) {
                return self::formatRaw( SiteStats::images(), $raw );
        }
-       static function numberofadmins( $parser, $raw = null ) {
+       public static function numberofadmins( $parser, $raw = null ) {
                return self::formatRaw( SiteStats::numberingroup( 'sysop' ), $raw );
        }
-       static function numberofedits( $parser, $raw = null ) {
+       public static function numberofedits( $parser, $raw = null ) {
                return self::formatRaw( SiteStats::edits(), $raw );
        }
-       static function numberofviews( $parser, $raw = null ) {
+       public static function numberofviews( $parser, $raw = null ) {
                global $wgDisableCounters;
                return !$wgDisableCounters ? self::formatRaw( SiteStats::views(), $raw ) : '';
        }
-       static function pagesinnamespace( $parser, $namespace = 0, $raw = null ) {
+       public static function pagesinnamespace( $parser, $namespace = 0, $raw = null ) {
                return self::formatRaw( SiteStats::pagesInNs( intval( $namespace ) ), $raw );
        }
-       static function numberingroup( $parser, $name = '', $raw = null ) {
+       public static function numberingroup( $parser, $name = '', $raw = null ) {
                return self::formatRaw( SiteStats::numberingroup( strtolower( $name ) ), $raw );
        }
 
@@ -508,49 +509,49 @@ class CoreParserFunctions {
         * @param string $title
         * @return mixed|string
         */
-       static function mwnamespace( $parser, $title = null ) {
+       public static function mwnamespace( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return str_replace( '_', ' ', $t->getNsText() );
        }
-       static function namespacee( $parser, $title = null ) {
+       public static function namespacee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfUrlencode( $t->getNsText() );
        }
-       static function namespacenumber( $parser, $title = null ) {
+       public static function namespacenumber( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return $t->getNamespace();
        }
-       static function talkspace( $parser, $title = null ) {
+       public static function talkspace( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) || !$t->canTalk() ) {
                        return '';
                }
                return str_replace( '_', ' ', $t->getTalkNsText() );
        }
-       static function talkspacee( $parser, $title = null ) {
+       public static function talkspacee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) || !$t->canTalk() ) {
                        return '';
                }
                return wfUrlencode( $t->getTalkNsText() );
        }
-       static function subjectspace( $parser, $title = null ) {
+       public static function subjectspace( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return str_replace( '_', ' ', $t->getSubjectNsText() );
        }
-       static function subjectspacee( $parser, $title = null ) {
+       public static function subjectspacee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
@@ -565,98 +566,98 @@ class CoreParserFunctions {
         * @param string $title
         * @return string
         */
-       static function pagename( $parser, $title = null ) {
+       public static function pagename( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getText() );
        }
-       static function pagenamee( $parser, $title = null ) {
+       public static function pagenamee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getPartialURL() );
        }
-       static function fullpagename( $parser, $title = null ) {
+       public static function fullpagename( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) || !$t->canTalk() ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getPrefixedText() );
        }
-       static function fullpagenamee( $parser, $title = null ) {
+       public static function fullpagenamee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) || !$t->canTalk() ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getPrefixedURL() );
        }
-       static function subpagename( $parser, $title = null ) {
+       public static function subpagename( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getSubpageText() );
        }
-       static function subpagenamee( $parser, $title = null ) {
+       public static function subpagenamee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getSubpageUrlForm() );
        }
-       static function rootpagename( $parser, $title = null ) {
+       public static function rootpagename( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getRootText() );
        }
-       static function rootpagenamee( $parser, $title = null ) {
+       public static function rootpagenamee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( wfUrlEncode( str_replace( ' ', '_', $t->getRootText() ) ) );
        }
-       static function basepagename( $parser, $title = null ) {
+       public static function basepagename( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getBaseText() );
        }
-       static function basepagenamee( $parser, $title = null ) {
+       public static function basepagenamee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( wfUrlEncode( str_replace( ' ', '_', $t->getBaseText() ) ) );
        }
-       static function talkpagename( $parser, $title = null ) {
+       public static function talkpagename( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) || !$t->canTalk() ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getTalkPage()->getPrefixedText() );
        }
-       static function talkpagenamee( $parser, $title = null ) {
+       public static function talkpagenamee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) || !$t->canTalk() ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getTalkPage()->getPrefixedURL() );
        }
-       static function subjectpagename( $parser, $title = null ) {
+       public static function subjectpagename( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
                }
                return wfEscapeWikiText( $t->getSubjectPage()->getPrefixedText() );
        }
-       static function subjectpagenamee( $parser, $title = null ) {
+       public static function subjectpagenamee( $parser, $title = null ) {
                $t = Title::newFromText( $title );
                if ( is_null( $t ) ) {
                        return '';
@@ -674,7 +675,7 @@ class CoreParserFunctions {
         * @param string $arg2
         * @return string
         */
-       static function pagesincategory( $parser, $name = '', $arg1 = null, $arg2 = null ) {
+       public static function pagesincategory( $parser, $name = '', $arg1 = null, $arg2 = null ) {
                global $wgContLang;
                static $magicWords = null;
                if ( is_null( $magicWords ) ) {
@@ -741,7 +742,7 @@ class CoreParserFunctions {
         * @param string $raw Should number be human readable with commas or just number
         * @return string
         */
-       static function pagesize( $parser, $page = '', $raw = null ) {
+       public static function pagesize( $parser, $page = '', $raw = null ) {
                $title = Title::newFromText( $page );
 
                if ( !is_object( $title ) ) {
@@ -766,7 +767,7 @@ class CoreParserFunctions {
         *
         * @return string
         */
-       static function protectionlevel( $parser, $type = '', $title = '' ) {
+       public static function protectionlevel( $parser, $type = '', $title = '' ) {
                $titleObject = Title::newFromText( $title );
                if ( !( $titleObject instanceof Title ) ) {
                        $titleObject = $parser->mTitle;
@@ -787,7 +788,7 @@ class CoreParserFunctions {
         * @param string $inLanguage Language code (in which to get name)
         * @return string
         */
-       static function language( $parser, $code = '', $inLanguage = '' ) {
+       public static function language( $parser, $code = '', $inLanguage = '' ) {
                $code = strtolower( $code );
                $inLanguage = strtolower( $inLanguage );
                $lang = Language::fetchLanguageName( $code, $inLanguage );
@@ -803,7 +804,7 @@ class CoreParserFunctions {
         * @param int $direction
         * @return string
         */
-       static function pad( $parser, $string, $length, $padding = '0', $direction = STR_PAD_RIGHT ) {
+       public static function pad( $parser, $string, $length, $padding = '0', $direction = STR_PAD_RIGHT ) {
                $padding = $parser->killMarkers( $padding );
                $lengthOfPadding = mb_strlen( $padding );
                if ( $lengthOfPadding == 0 ) {
@@ -829,11 +830,11 @@ class CoreParserFunctions {
                }
        }
 
-       static function padleft( $parser, $string = '', $length = 0, $padding = '0' ) {
+       public static function padleft( $parser, $string = '', $length = 0, $padding = '0' ) {
                return self::pad( $parser, $string, $length, $padding, STR_PAD_LEFT );
        }
 
-       static function padright( $parser, $string = '', $length = 0, $padding = '0' ) {
+       public static function padright( $parser, $string = '', $length = 0, $padding = '0' ) {
                return self::pad( $parser, $string, $length, $padding );
        }
 
@@ -842,12 +843,12 @@ class CoreParserFunctions {
         * @param string $text
         * @return string
         */
-       static function anchorencode( $parser, $text ) {
+       public static function anchorencode( $parser, $text ) {
                $text = $parser->killMarkers( $text );
                return (string)substr( $parser->guessSectionNameFromWikiText( $text ), 1 );
        }
 
-       static function special( $parser, $text ) {
+       public static function special( $parser, $text ) {
                list( $page, $subpage ) = SpecialPageFactory::resolveAlias( $text );
                if ( $page ) {
                        $title = SpecialPage::getTitleFor( $page, $subpage );
@@ -859,7 +860,7 @@ class CoreParserFunctions {
                }
        }
 
-       static function speciale( $parser, $text ) {
+       public static function speciale( $parser, $text ) {
                return wfUrlencode( str_replace( ' ', '_', self::special( $parser, $text ) ) );
        }
 
index 01ad97c..85920cc 100644 (file)
@@ -30,7 +30,7 @@ class CoreTagHooks {
         * @param Parser $parser
         * @return void
         */
-       static function register( $parser ) {
+       public static function register( $parser ) {
                global $wgRawHtml;
                $parser->setHook( 'pre', array( __CLASS__, 'pre' ) );
                $parser->setHook( 'nowiki', array( __CLASS__, 'nowiki' ) );
@@ -50,7 +50,7 @@ class CoreTagHooks {
         * @param Parser $parser
         * @return string HTML
         */
-       static function pre( $text, $attribs, $parser ) {
+       public static function pre( $text, $attribs, $parser ) {
                // Backwards-compatibility hack
                $content = StringUtils::delimiterReplace( '<nowiki>', '</nowiki>', '$1', $text, 'i' );
 
@@ -75,7 +75,7 @@ class CoreTagHooks {
         * @throws MWException
         * @return array
         */
-       static function html( $content, $attributes, $parser ) {
+       public static function html( $content, $attributes, $parser ) {
                global $wgRawHtml;
                if ( $wgRawHtml ) {
                        return array( $content, 'markerType' => 'nowiki' );
@@ -96,7 +96,7 @@ class CoreTagHooks {
         * @param Parser $parser
         * @return array
         */
-       static function nowiki( $content, $attributes, $parser ) {
+       public static function nowiki( $content, $attributes, $parser ) {
                $content = strtr( $content, array( '-{' => '-&#123;', '}-' => '&#125;-' ) );
                return array( Xml::escapeTagsOnly( $content ), 'markerType' => 'nowiki' );
        }
@@ -116,7 +116,7 @@ class CoreTagHooks {
         * @param Parser $parser
         * @return string HTML
         */
-       static function gallery( $content, $attributes, $parser ) {
+       public static function gallery( $content, $attributes, $parser ) {
                return $parser->renderImageGallery( $content, $attributes );
        }
 }
index 0bf2ffc..82f0e9d 100644 (file)
  * @ingroup Parser
  */
 class DateFormatter {
-       var $mSource, $mTarget;
-       var $monthNames = '', $rxDM, $rxMD, $rxDMY, $rxYDM, $rxMDY, $rxYMD;
+       public $mSource, $mTarget;
+       public $monthNames = '', $rxDM, $rxMD, $rxDMY, $rxYDM, $rxMDY, $rxYMD;
 
-       var $regexes, $pDays, $pMonths, $pYears;
-       var $rules, $xMonths, $preferences;
+       public $regexes, $pDays, $pMonths, $pYears;
+       public $rules, $xMonths, $preferences;
 
        protected $lang;
 
@@ -51,7 +51,7 @@ class DateFormatter {
        /**
         * @param Language $lang In which language to format the date
         */
-       function __construct( Language $lang ) {
+       public function __construct( Language $lang ) {
                $this->lang = $lang;
 
                $this->monthNames = $this->getMonthRegex();
@@ -146,7 +146,7 @@ class DateFormatter {
         *
         * @return string
         */
-       function reformat( $preference, $text, $options = array( 'linked' ) ) {
+       public function reformat( $preference, $text, $options = array( 'linked' ) ) {
                $linked = in_array( 'linked', $options );
                $match_whole = in_array( 'match-whole', $options );
 
@@ -196,7 +196,7 @@ class DateFormatter {
         * @param array $matches
         * @return string
         */
-       function replace( $matches ) {
+       public function replace( $matches ) {
                # Extract information from $matches
                $linked = true;
                if ( isset( $this->mLinked ) ) {
@@ -220,7 +220,7 @@ class DateFormatter {
         * @param bool $link
         * @return string
         */
-       function formatDate( $bits, $link = true ) {
+       public function formatDate( $bits, $link = true ) {
                $format = $this->targets[$this->mTarget];
 
                if ( !$link ) {
@@ -318,7 +318,7 @@ class DateFormatter {
         * @todo document
         * @return string
         */
-       function getMonthRegex() {
+       public function getMonthRegex() {
                $names = array();
                for ( $i = 1; $i <= 12; $i++ ) {
                        $names[] = $this->lang->getMonthName( $i );
@@ -332,7 +332,7 @@ class DateFormatter {
         * @param string $monthName Month name
         * @return string ISO month name
         */
-       function makeIsoMonth( $monthName ) {
+       public function makeIsoMonth( $monthName ) {
                $n = $this->xMonths[$this->lang->lc( $monthName )];
                return sprintf( '%02d', $n );
        }
@@ -342,7 +342,7 @@ class DateFormatter {
         * @param string $year Year name
         * @return string ISO year name
         */
-       function makeIsoYear( $year ) {
+       public function makeIsoYear( $year ) {
                # Assumes the year is in a nice format, as enforced by the regex
                if ( substr( $year, -2 ) == 'BC' ) {
                        $num = intval( substr( $year, 0, -3 ) ) - 1;
@@ -360,7 +360,7 @@ class DateFormatter {
         * @param string $iso
         * @return int|string
         */
-       function makeNormalYear( $iso ) {
+       public function makeNormalYear( $iso ) {
                if ( $iso[0] == '-' ) {
                        $text = ( intval( substr( $iso, 1 ) ) + 1 ) . ' BC';
                } else {
index 30bb2cf..c3925b3 100644 (file)
  * @ingroup Parser
  */
 class LinkHolderArray {
-       var $internals = array(), $interwikis = array();
-       var $size = 0;
+       public $internals = array();
+       public $interwikis = array();
+       public $size = 0;
 
        /**
         * @var Parser
         */
-       var $parent;
+       public $parent;
        protected $tempIdOffset;
 
        /**
         * @param Parser $parent
         */
-       function __construct( $parent ) {
+       public function __construct( $parent ) {
                $this->parent = $parent;
        }
 
        /**
         * Reduce memory usage to reduce the impact of circular references
         */
-       function __destruct() {
+       public function __destruct() {
                foreach ( $this as $name => $value ) {
                        unset( $this->$name );
                }
@@ -58,7 +59,7 @@ class LinkHolderArray {
         * Compact the titles, only serialize the text form.
         * @return array
         */
-       function __sleep() {
+       public function __sleep() {
                foreach ( $this->internals as &$nsLinks ) {
                        foreach ( $nsLinks as &$entry ) {
                                unset( $entry['title'] );
@@ -78,7 +79,7 @@ class LinkHolderArray {
        /**
         * Recreate the Title objects
         */
-       function __wakeup() {
+       public function __wakeup() {
                foreach ( $this->internals as &$nsLinks ) {
                        foreach ( $nsLinks as &$entry ) {
                                $entry['title'] = Title::newFromText( $entry['pdbk'] );
@@ -97,7 +98,7 @@ class LinkHolderArray {
         * Merge another LinkHolderArray into this one
         * @param LinkHolderArray $other
         */
-       function merge( $other ) {
+       public function merge( $other ) {
                foreach ( $other->internals as $ns => $entries ) {
                        $this->size += count( $entries );
                        if ( !isset( $this->internals[$ns] ) ) {
@@ -121,7 +122,7 @@ class LinkHolderArray {
         * @param array $texts Array of strings
         * @return array
         */
-       function mergeForeign( $other, $texts ) {
+       public function mergeForeign( $other, $texts ) {
                $this->tempIdOffset = $idOffset = $this->parent->nextLinkID();
                $maxId = 0;
 
@@ -165,7 +166,7 @@ class LinkHolderArray {
         * @param string $text
         * @return LinkHolderArray
         */
-       function getSubArray( $text ) {
+       public function getSubArray( $text ) {
                $sub = new LinkHolderArray( $this->parent );
 
                # Internal links
@@ -199,7 +200,7 @@ class LinkHolderArray {
         * Returns true if the memory requirements of this object are getting large
         * @return bool
         */
-       function isBig() {
+       public function isBig() {
                global $wgLinkHolderBatchSize;
                return $this->size > $wgLinkHolderBatchSize;
        }
@@ -208,7 +209,7 @@ class LinkHolderArray {
         * Clear all stored link holders.
         * Make sure you don't have any text left using these link holders, before you call this
         */
-       function clear() {
+       public function clear() {
                $this->internals = array();
                $this->interwikis = array();
                $this->size = 0;
@@ -227,7 +228,7 @@ class LinkHolderArray {
         * @param string $prefix [optional]
         * @return string
         */
-       function makeHolder( $nt, $text = '', $query = array(), $trail = '', $prefix = '' ) {
+       public function makeHolder( $nt, $text = '', $query = array(), $trail = '', $prefix = '' ) {
                wfProfileIn( __METHOD__ );
                if ( !is_object( $nt ) ) {
                        # Fail gracefully
@@ -268,7 +269,7 @@ class LinkHolderArray {
         * @param string $text
         * @return array Array of link CSS classes, indexed by PDBK.
         */
-       function replace( &$text ) {
+       public function replace( &$text ) {
                wfProfileIn( __METHOD__ );
 
                /** @todo FIXME: replaceInternal doesn't return a value */
@@ -630,7 +631,7 @@ class LinkHolderArray {
         * @param string $text
         * @return string
         */
-       function replaceText( $text ) {
+       public function replaceText( $text ) {
                wfProfileIn( __METHOD__ );
 
                $text = preg_replace_callback(
@@ -649,7 +650,7 @@ class LinkHolderArray {
         * @return string
         * @private
         */
-       function replaceTextCallback( $matches ) {
+       public function replaceTextCallback( $matches ) {
                $type = $matches[1];
                $key = $matches[2];
                if ( $type == 'LINK' ) {
index f7fe5a8..a108d2b 100644 (file)
@@ -83,7 +83,7 @@ class MWTidyWrapper {
         *
         * @return string
         */
-       function replaceCallback( $m ) {
+       public function replaceCallback( $m ) {
                $marker = "{$this->mUniqPrefix}-item-{$this->mMarkerIndex}" . Parser::MARKER_SUFFIX;
                $this->mMarkerIndex++;
                $this->mTokens->setPair( $marker, $m[0] );
index 36f306d..61fffc5 100644 (file)
@@ -120,61 +120,61 @@ class Parser {
        const TOC_END = '</mw:toc>';
 
        # Persistent:
-       var $mTagHooks = array();
-       var $mTransparentTagHooks = array();
-       var $mFunctionHooks = array();
-       var $mFunctionSynonyms = array( 0 => array(), 1 => array() );
-       var $mFunctionTagHooks = array();
-       var $mStripList = array();
-       var $mDefaultStripList = array();
-       var $mVarCache = array();
-       var $mImageParams = array();
-       var $mImageParamsMagicArray = array();
-       var $mMarkerIndex = 0;
-       var $mFirstCall = true;
+       public $mTagHooks = array();
+       public $mTransparentTagHooks = array();
+       public $mFunctionHooks = array();
+       public $mFunctionSynonyms = array( 0 => array(), 1 => array() );
+       public $mFunctionTagHooks = array();
+       public $mStripList = array();
+       public $mDefaultStripList = array();
+       public $mVarCache = array();
+       public $mImageParams = array();
+       public $mImageParamsMagicArray = array();
+       public $mMarkerIndex = 0;
+       public $mFirstCall = true;
 
        # Initialised by initialiseVariables()
 
        /**
         * @var MagicWordArray
         */
-       var $mVariables;
+       public $mVariables;
 
        /**
         * @var MagicWordArray
         */
-       var $mSubstWords;
-       var $mConf, $mPreprocessor, $mExtLinkBracketedRegex, $mUrlProtocols; # Initialised in constructor
+       public $mSubstWords;
+       public $mConf, $mPreprocessor, $mExtLinkBracketedRegex, $mUrlProtocols; # Initialised in constructor
 
        # Cleared with clearState():
        /**
         * @var ParserOutput
         */
-       var $mOutput;
-       var $mAutonumber, $mDTopen;
+       public $mOutput;
+       public $mAutonumber, $mDTopen;
 
        /**
         * @var StripState
         */
-       var $mStripState;
+       public $mStripState;
 
-       var $mIncludeCount, $mArgStack, $mLastSection, $mInPre;
+       public $mIncludeCount, $mArgStack, $mLastSection, $mInPre;
        /**
         * @var LinkHolderArray
         */
-       var $mLinkHolders;
+       public $mLinkHolders;
 
-       var $mLinkID;
-       var $mIncludeSizes, $mPPNodeCount, $mGeneratedPPNodeCount, $mHighestExpansionDepth;
-       var $mDefaultSort;
-       var $mTplRedirCache, $mTplDomCache, $mHeadings, $mDoubleUnderscores;
-       var $mExpensiveFunctionCount; # number of expensive parser function calls
-       var $mShowToc, $mForceTocPosition;
+       public $mLinkID;
+       public $mIncludeSizes, $mPPNodeCount, $mGeneratedPPNodeCount, $mHighestExpansionDepth;
+       public $mDefaultSort;
+       public $mTplRedirCache, $mTplDomCache, $mHeadings, $mDoubleUnderscores;
+       public $mExpensiveFunctionCount; # number of expensive parser function calls
+       public $mShowToc, $mForceTocPosition;
 
        /**
         * @var User
         */
-       var $mUser; # User object; only used when doing pre-save transform
+       public $mUser; # User object; only used when doing pre-save transform
 
        # Temporary
        # These are variables reset at least once per parse regardless of $clearState
@@ -182,33 +182,33 @@ class Parser {
        /**
         * @var ParserOptions
         */
-       var $mOptions;
+       public $mOptions;
 
        /**
         * @var Title
         */
-       var $mTitle;        # Title context, used for self-link rendering and similar things
-       var $mOutputType;   # Output type, one of the OT_xxx constants
-       var $ot;            # Shortcut alias, see setOutputType()
-       var $mRevisionObject; # The revision object of the specified revision ID
-       var $mRevisionId;   # ID to display in {{REVISIONID}} tags
-       var $mRevisionTimestamp; # The timestamp of the specified revision ID
-       var $mRevisionUser; # User to display in {{REVISIONUSER}} tag
-       var $mRevisionSize; # Size to display in {{REVISIONSIZE}} variable
-       var $mRevIdForTs;   # The revision ID which was used to fetch the timestamp
-       var $mInputSize = false; # For {{PAGESIZE}} on current page.
+       public $mTitle;        # Title context, used for self-link rendering and similar things
+       public $mOutputType;   # Output type, one of the OT_xxx constants
+       public $ot;            # Shortcut alias, see setOutputType()
+       public $mRevisionObject; # The revision object of the specified revision ID
+       public $mRevisionId;   # ID to display in {{REVISIONID}} tags
+       public $mRevisionTimestamp; # The timestamp of the specified revision ID
+       public $mRevisionUser; # User to display in {{REVISIONUSER}} tag
+       public $mRevisionSize; # Size to display in {{REVISIONSIZE}} variable
+       public $mRevIdForTs;   # The revision ID which was used to fetch the timestamp
+       public $mInputSize = false; # For {{PAGESIZE}} on current page.
 
        /**
         * @var string
         */
-       var $mUniqPrefix;
+       public $mUniqPrefix;
 
        /**
         * @var array Array with the language name of each language link (i.e. the
         * interwiki prefix) in the key, value arbitrary. Used to avoid sending
         * duplicate language links to the ParserOutput.
         */
-       var $mLangLinkLanguages;
+       public $mLangLinkLanguages;
 
        /**
         * @var bool Recursive call protection.
@@ -244,7 +244,7 @@ class Parser {
        /**
         * Reduce memory usage to reduce the impact of circular references
         */
-       function __destruct() {
+       public function __destruct() {
                if ( isset( $this->mLinkHolders ) ) {
                        unset( $this->mLinkHolders );
                }
@@ -256,7 +256,7 @@ class Parser {
        /**
         * Allow extensions to clean up when the parser is cloned
         */
-       function __clone() {
+       public function __clone() {
                $this->mInParse = false;
                wfRunHooks( 'ParserCloned', array( $this ) );
        }
@@ -264,7 +264,7 @@ class Parser {
        /**
         * Do various kinds of initialisation on the first call of the parser
         */
-       function firstCallInit() {
+       public function firstCallInit() {
                if ( !$this->mFirstCall ) {
                        return;
                }
@@ -285,7 +285,7 @@ class Parser {
         *
         * @private
         */
-       function clearState() {
+       public function clearState() {
                wfProfileIn( __METHOD__ );
                if ( $this->mFirstCall ) {
                        $this->firstCallInit();
@@ -605,7 +605,7 @@ class Parser {
         *
         * @return string
         */
-       function recursiveTagParse( $text, $frame = false ) {
+       public function recursiveTagParse( $text, $frame = false ) {
                wfProfileIn( __METHOD__ );
                wfRunHooks( 'ParserBeforeStrip', array( &$this, &$text, &$this->mStripState ) );
                wfRunHooks( 'ParserAfterStrip', array( &$this, &$text, &$this->mStripState ) );
@@ -625,7 +625,7 @@ class Parser {
         * @param bool|PPFrame $frame
         * @return mixed|string
         */
-       function preprocess( $text, Title $title = null, ParserOptions $options, $revid = null, $frame = false ) {
+       public function preprocess( $text, Title $title = null, ParserOptions $options, $revid = null, $frame = false ) {
                wfProfileIn( __METHOD__ );
                $magicScopeVariable = $this->lock();
                $this->startParse( $title, $options, self::OT_PREPROCESS, true );
@@ -700,7 +700,7 @@ class Parser {
         *
         * @param User|null $user User object or null (to reset)
         */
-       function setUser( $user ) {
+       public function setUser( $user ) {
                $this->mUser = $user;
        }
 
@@ -727,7 +727,7 @@ class Parser {
         *
         * @param Title $t
         */
-       function setTitle( $t ) {
+       public function setTitle( $t ) {
                if ( !$t ) {
                        $t = Title::newFromText( 'NO TITLE' );
                }
@@ -746,7 +746,7 @@ class Parser {
         *
         * @return Title
         */
-       function getTitle() {
+       public function getTitle() {
                return $this->mTitle;
        }
 
@@ -756,7 +756,7 @@ class Parser {
         * @param Title $x Title object or null to just get the current one
         * @return Title
         */
-       function Title( $x = null ) {
+       public function Title( $x = null ) {
                return wfSetVar( $this->mTitle, $x );
        }
 
@@ -765,7 +765,7 @@ class Parser {
         *
         * @param int $ot New value
         */
-       function setOutputType( $ot ) {
+       public function setOutputType( $ot ) {
                $this->mOutputType = $ot;
                # Shortcut alias
                $this->ot = array(
@@ -782,7 +782,7 @@ class Parser {
         * @param int|null $x New value or null to just get the current one
         * @return int
         */
-       function OutputType( $x = null ) {
+       public function OutputType( $x = null ) {
                return wfSetVar( $this->mOutputType, $x );
        }
 
@@ -791,7 +791,7 @@ class Parser {
         *
         * @return ParserOutput
         */
-       function getOutput() {
+       public function getOutput() {
                return $this->mOutput;
        }
 
@@ -800,7 +800,7 @@ class Parser {
         *
         * @return ParserOptions
         */
-       function getOptions() {
+       public function getOptions() {
                return $this->mOptions;
        }
 
@@ -810,21 +810,21 @@ class Parser {
         * @param ParserOptions $x New value or null to just get the current one
         * @return ParserOptions Current ParserOptions object
         */
-       function Options( $x = null ) {
+       public function Options( $x = null ) {
                return wfSetVar( $this->mOptions, $x );
        }
 
        /**
         * @return int
         */
-       function nextLinkID() {
+       public function nextLinkID() {
                return $this->mLinkID++;
        }
 
        /**
         * @param int $id
         */
-       function setLinkID( $id ) {
+       public function setLinkID( $id ) {
                $this->mLinkID = $id;
        }
 
@@ -832,7 +832,7 @@ class Parser {
         * Get a language object for use in parser functions such as {{FORMATNUM:}}
         * @return Language
         */
-       function getFunctionLang() {
+       public function getFunctionLang() {
                return $this->getTargetLanguage();
        }
 
@@ -863,7 +863,7 @@ class Parser {
         * Get the language object for language conversion
         * @return Language|null
         */
-       function getConverterLanguage() {
+       public function getConverterLanguage() {
                return $this->getTargetLanguage();
        }
 
@@ -873,7 +873,7 @@ class Parser {
         *
         * @return User
         */
-       function getUser() {
+       public function getUser() {
                if ( !is_null( $this->mUser ) ) {
                        return $this->mUser;
                }
@@ -885,7 +885,7 @@ class Parser {
         *
         * @return Preprocessor
         */
-       function getPreprocessor() {
+       public function getPreprocessor() {
                if ( !isset( $this->mPreprocessor ) ) {
                        $class = $this->mPreprocessorClass;
                        $this->mPreprocessor = new $class( $this );
@@ -980,7 +980,7 @@ class Parser {
         *
         * @return array
         */
-       function getStripList() {
+       public function getStripList() {
                return $this->mStripList;
        }
 
@@ -993,7 +993,7 @@ class Parser {
         *
         * @return string
         */
-       function insertStripItem( $text ) {
+       public function insertStripItem( $text ) {
                $rnd = "{$this->mUniqPrefix}-item-{$this->mMarkerIndex}-" . self::MARKER_SUFFIX;
                $this->mMarkerIndex++;
                $this->mStripState->addGeneral( $rnd, $text );
@@ -1007,7 +1007,7 @@ class Parser {
         * @param string $text
         * @return string
         */
-       function doTableStuff( $text ) {
+       public function doTableStuff( $text ) {
                wfProfileIn( __METHOD__ );
 
                $lines = StringUtils::explode( "\n", $text );
@@ -1212,7 +1212,7 @@ class Parser {
         *
         * @return string
         */
-       function internalParse( $text, $isMain = true, $frame = false ) {
+       public function internalParse( $text, $isMain = true, $frame = false ) {
                wfProfileIn( __METHOD__ );
 
                $origText = $text;
@@ -1285,7 +1285,7 @@ class Parser {
         *
         * @return string
         */
-       function doMagicLinks( $text ) {
+       public function doMagicLinks( $text ) {
                wfProfileIn( __METHOD__ );
                $prots = wfUrlProtocolsWithoutProtRel();
                $urlChar = self::EXT_LINK_URL_CLASS;
@@ -1310,7 +1310,7 @@ class Parser {
         * @param array $m
         * @return HTML|string
         */
-       function magicLinkCallback( $m ) {
+       public function magicLinkCallback( $m ) {
                if ( isset( $m[1] ) && $m[1] !== '' ) {
                        # Skip anchor
                        return $m[0];
@@ -1363,7 +1363,7 @@ class Parser {
         * @return string HTML
         * @private
         */
-       function makeFreeExternalLink( $url ) {
+       public function makeFreeExternalLink( $url ) {
                wfProfileIn( __METHOD__ );
 
                $trail = '';
@@ -1418,7 +1418,7 @@ class Parser {
         *
         * @return string
         */
-       function doHeadings( $text ) {
+       public function doHeadings( $text ) {
                wfProfileIn( __METHOD__ );
                for ( $i = 6; $i >= 1; --$i ) {
                        $h = str_repeat( '=', $i );
@@ -1436,7 +1436,7 @@ class Parser {
         *
         * @return string The altered text
         */
-       function doAllQuotes( $text ) {
+       public function doAllQuotes( $text ) {
                wfProfileIn( __METHOD__ );
                $outtext = '';
                $lines = StringUtils::explode( "\n", $text );
@@ -1645,7 +1645,7 @@ class Parser {
         * @throws MWException
         * @return string
         */
-       function replaceExternalLinks( $text ) {
+       public function replaceExternalLinks( $text ) {
                wfProfileIn( __METHOD__ );
 
                $bits = preg_split( $this->mExtLinkBracketedRegex, $text, -1, PREG_SPLIT_DELIM_CAPTURE );
@@ -1748,7 +1748,7 @@ class Parser {
         *   nofollow if appropriate
         * @return array Associative array of HTML attributes
         */
-       function getExternalLinkAttribs( $url = false ) {
+       public function getExternalLinkAttribs( $url = false ) {
                $attribs = array();
                $attribs['rel'] = self::getExternalLinkRel( $url, $this->mTitle );
 
@@ -1769,7 +1769,7 @@ class Parser {
         *       the URL differently; as a workaround, just use the output for
         *       statistical records, not for actual linking/output.
         */
-       static function replaceUnusualEscapes( $url ) {
+       public static function replaceUnusualEscapes( $url ) {
                return preg_replace_callback( '/%[0-9A-Fa-f]{2}/',
                        array( __CLASS__, 'replaceUnusualEscapesCallback' ), $url );
        }
@@ -1862,7 +1862,7 @@ class Parser {
         *
         * @private
         */
-       function replaceInternalLinks( $s ) {
+       public function replaceInternalLinks( $s ) {
                $this->mLinkHolders->merge( $this->replaceInternalLinks2( $s ) );
                return $s;
        }
@@ -1875,7 +1875,7 @@ class Parser {
         *
         * @private
         */
-       function replaceInternalLinks2( &$s ) {
+       public function replaceInternalLinks2( &$s ) {
                global $wgExtraInterlanguageLinkPrefixes;
                wfProfileIn( __METHOD__ );
 
@@ -2227,7 +2227,7 @@ class Parser {
         * @param string $prefix
         * @return string HTML-wikitext mix oh yuck
         */
-       function makeKnownLinkHolder( $nt, $text = '', $query = array(), $trail = '', $prefix = '' ) {
+       public function makeKnownLinkHolder( $nt, $text = '', $query = array(), $trail = '', $prefix = '' ) {
                list( $inside, $trail ) = Linker::splitTrail( $trail );
 
                if ( is_string( $query ) ) {
@@ -2252,7 +2252,7 @@ class Parser {
         * @param string $text More-or-less HTML
         * @return string Less-or-more HTML with NOPARSE bits
         */
-       function armorLinks( $text ) {
+       public function armorLinks( $text ) {
                return preg_replace( '/\b((?i)' . $this->mUrlProtocols . ')/',
                        "{$this->mUniqPrefix}NOPARSE$1", $text );
        }
@@ -2261,7 +2261,7 @@ class Parser {
         * Return true if subpage links should be expanded on this page.
         * @return bool
         */
-       function areSubpagesAllowed() {
+       public function areSubpagesAllowed() {
                # Some namespaces don't allow subpages
                return MWNamespace::hasSubpages( $this->mTitle->getNamespace() );
        }
@@ -2274,7 +2274,7 @@ class Parser {
         * @return string The full name of the link
         * @private
         */
-       function maybeDoSubpageLink( $target, &$text ) {
+       public function maybeDoSubpageLink( $target, &$text ) {
                return Linker::normalizeSubpageLink( $this->mTitle, $target, $text );
        }
 
@@ -2284,7 +2284,7 @@ class Parser {
         *
         * @return string
         */
-       function closeParagraph() {
+       public function closeParagraph() {
                $result = '';
                if ( $this->mLastSection != '' ) {
                        $result = '</' . $this->mLastSection . ">\n";
@@ -2304,7 +2304,7 @@ class Parser {
         *
         * @return int
         */
-       function getCommon( $st1, $st2 ) {
+       public function getCommon( $st1, $st2 ) {
                $fl = strlen( $st1 );
                $shorter = strlen( $st2 );
                if ( $fl < $shorter ) {
@@ -2328,7 +2328,7 @@ class Parser {
         *
         * @return string
         */
-       function openList( $char ) {
+       public function openList( $char ) {
                $result = $this->closeParagraph();
 
                if ( '*' === $char ) {
@@ -2354,7 +2354,7 @@ class Parser {
         *
         * @return string
         */
-       function nextItem( $char ) {
+       public function nextItem( $char ) {
                if ( '*' === $char || '#' === $char ) {
                        return "</li>\n<li>";
                } elseif ( ':' === $char || ';' === $char ) {
@@ -2380,7 +2380,7 @@ class Parser {
         *
         * @return string
         */
-       function closeList( $char ) {
+       public function closeList( $char ) {
                if ( '*' === $char ) {
                        $text = "</li></ul>";
                } elseif ( '#' === $char ) {
@@ -2407,7 +2407,7 @@ class Parser {
         * @private
         * @return string The lists rendered as HTML
         */
-       function doBlockLevels( $text, $linestart ) {
+       public function doBlockLevels( $text, $linestart ) {
                wfProfileIn( __METHOD__ );
 
                # Parsing through the text line by line.  The main thing
@@ -2625,7 +2625,7 @@ class Parser {
         * @throws MWException
         * @return string The position of the ':', or false if none found
         */
-       function findColonNoLinks( $str, &$before, &$after ) {
+       public function findColonNoLinks( $str, &$before, &$after ) {
                wfProfileIn( __METHOD__ );
 
                $pos = strpos( $str, ':' );
@@ -2793,7 +2793,7 @@ class Parser {
         * @throws MWException
         * @return string
         */
-       function getVariableValue( $index, $frame = false ) {
+       public function getVariableValue( $index, $frame = false ) {
                global $wgContLang, $wgSitename, $wgServer, $wgServerName;
                global $wgArticlePath, $wgScriptPath, $wgStylePath;
 
@@ -3149,7 +3149,7 @@ class Parser {
         *
         * @private
         */
-       function initialiseVariables() {
+       public function initialiseVariables() {
                wfProfileIn( __METHOD__ );
                $variableIDs = MagicWord::getVariableIDs();
                $substIDs = MagicWord::getSubstIDs();
@@ -3181,7 +3181,7 @@ class Parser {
         *
         * @return PPNode
         */
-       function preprocessToDom( $text, $flags = 0 ) {
+       public function preprocessToDom( $text, $flags = 0 ) {
                $dom = $this->getPreprocessor()->preprocessToObj( $text, $flags );
                return $dom;
        }
@@ -3256,7 +3256,7 @@ class Parser {
         *
         * @return array
         */
-       static function createAssocArgs( $args ) {
+       public static function createAssocArgs( $args ) {
                $assocArgs = array();
                $index = 1;
                foreach ( $args as $arg ) {
@@ -3302,7 +3302,7 @@ class Parser {
         * @param string|int|null $max Maximum allowed, when an explicit limit has been
         *       exceeded, provide the values (optional)
         */
-       function limitationWarn( $limitationType, $current = '', $max = '' ) {
+       public function limitationWarn( $limitationType, $current = '', $max = '' ) {
                # does no harm if $current and $max are present but are unnecessary for the message
                $warning = wfMessage( "$limitationType-warning" )->numParams( $current, $max )
                        ->inLanguage( $this->mOptions->getUserLangObj() )->text();
@@ -3762,7 +3762,7 @@ class Parser {
         *
         * @return array
         */
-       function getTemplateDom( $title ) {
+       public function getTemplateDom( $title ) {
                $cacheTitle = $title;
                $titleText = $title->getPrefixedDBkey();
 
@@ -3799,7 +3799,7 @@ class Parser {
         * @param Title $title
         * @return array ( string or false, Title )
         */
-       function fetchTemplateAndTitle( $title ) {
+       public function fetchTemplateAndTitle( $title ) {
                // Defaults to Parser::statelessFetchTemplate()
                $templateCb = $this->mOptions->getTemplateCallback();
                $stuff = call_user_func( $templateCb, $title, $this );
@@ -3823,7 +3823,7 @@ class Parser {
         * @param Title $title
         * @return string|bool
         */
-       function fetchTemplate( $title ) {
+       public function fetchTemplate( $title ) {
                $rv = $this->fetchTemplateAndTitle( $title );
                return $rv[0];
        }
@@ -3837,7 +3837,7 @@ class Parser {
         *
         * @return array
         */
-       static function statelessFetchTemplate( $title, $parser = false ) {
+       public static function statelessFetchTemplate( $title, $parser = false ) {
                $text = $skip = false;
                $finalTitle = $title;
                $deps = array();
@@ -3921,7 +3921,7 @@ class Parser {
         * @param array $options Array of options to RepoGroup::findFile
         * @return File|bool
         */
-       function fetchFile( $title, $options = array() ) {
+       public function fetchFile( $title, $options = array() ) {
                $res = $this->fetchFileAndTitle( $title, $options );
                return $res[0];
        }
@@ -3933,7 +3933,7 @@ class Parser {
         * @param array $options Array of options to RepoGroup::findFile
         * @return array ( File or false, Title of file )
         */
-       function fetchFileAndTitle( $title, $options = array() ) {
+       public function fetchFileAndTitle( $title, $options = array() ) {
                $file = $this->fetchFileNoRegister( $title, $options );
 
                $time = $file ? $file->getTimestamp() : false;
@@ -3977,7 +3977,7 @@ class Parser {
         *
         * @return string
         */
-       function interwikiTransclude( $title, $action ) {
+       public function interwikiTransclude( $title, $action ) {
                global $wgEnableScaryTranscluding;
 
                if ( !$wgEnableScaryTranscluding ) {
@@ -3996,7 +3996,7 @@ class Parser {
         * @param string $url
         * @return mixed|string
         */
-       function fetchScaryTemplateMaybeFromCache( $url ) {
+       public function fetchScaryTemplateMaybeFromCache( $url ) {
                global $wgTranscludeCacheExpiry;
                $dbr = wfGetDB( DB_SLAVE );
                $tsCond = $dbr->timestamp( time() - $wgTranscludeCacheExpiry );
@@ -4036,7 +4036,7 @@ class Parser {
         *
         * @return array
         */
-       function argSubstitution( $piece, $frame ) {
+       public function argSubstitution( $piece, $frame ) {
                wfProfileIn( __METHOD__ );
 
                $error = false;
@@ -4091,7 +4091,7 @@ class Parser {
         * @throws MWException
         * @return string
         */
-       function extensionSubstitution( $params, $frame ) {
+       public function extensionSubstitution( $params, $frame ) {
                $name = $frame->expand( $params['name'] );
                $attrText = !isset( $params['attr'] ) ? null : $frame->expand( $params['attr'] );
                $content = !isset( $params['inner'] ) ? null : $frame->expand( $params['inner'] );
@@ -4175,7 +4175,7 @@ class Parser {
         * @param int $size The size of the text
         * @return bool False if this inclusion would take it over the maximum, true otherwise
         */
-       function incrementIncludeSize( $type, $size ) {
+       public function incrementIncludeSize( $type, $size ) {
                if ( $this->mIncludeSizes[$type] + $size > $this->mOptions->getMaxIncludeSize() ) {
                        return false;
                } else {
@@ -4189,7 +4189,7 @@ class Parser {
         *
         * @return bool False if the limit has been exceeded
         */
-       function incrementExpensiveFunctionCount() {
+       public function incrementExpensiveFunctionCount() {
                $this->mExpensiveFunctionCount++;
                return $this->mExpensiveFunctionCount <= $this->mOptions->getExpensiveParserFunctionLimit();
        }
@@ -4202,7 +4202,7 @@ class Parser {
         *
         * @return string
         */
-       function doDoubleUnderscore( $text ) {
+       public function doDoubleUnderscore( $text ) {
                wfProfileIn( __METHOD__ );
 
                # The position of __TOC__ needs to be recorded
@@ -4308,7 +4308,7 @@ class Parser {
         * @return mixed|string
         * @private
         */
-       function formatHeadings( $text, $origText, $isMain = true ) {
+       public function formatHeadings( $text, $origText, $isMain = true ) {
                global $wgMaxTocLevel, $wgExperimentalHtmlIds;
 
                # Inhibit editsection links if requested in the page
@@ -4828,7 +4828,7 @@ class Parser {
         *    or null to use default value
         * @return string
         */
-       function getUserSig( &$user, $nickname = false, $fancySig = null ) {
+       public function getUserSig( &$user, $nickname = false, $fancySig = null ) {
                global $wgMaxSigChars;
 
                $username = $user->getName();
@@ -4877,7 +4877,7 @@ class Parser {
         * @param string $text
         * @return string|bool An expanded string, or false if invalid.
         */
-       function validateSig( $text ) {
+       public function validateSig( $text ) {
                return Xml::isWellFormedXmlFragment( $text ) ? $text : false;
        }
 
@@ -5050,7 +5050,7 @@ class Parser {
         * @throws MWException
         * @return callable|null The old value of the mTagHooks array associated with the hook
         */
-       function setTransparentTagHook( $tag, $callback ) {
+       public function setTransparentTagHook( $tag, $callback ) {
                $tag = strtolower( $tag );
                if ( preg_match( '/[<>\r\n]/', $tag, $m ) ) {
                        throw new MWException( "Invalid character {$m[0]} in setTransparentHook('$tag', ...) call" );
@@ -5064,7 +5064,7 @@ class Parser {
        /**
         * Remove all tag hooks
         */
-       function clearTagHooks() {
+       public function clearTagHooks() {
                $this->mTagHooks = array();
                $this->mFunctionTagHooks = array();
                $this->mStripList = $this->mDefaultStripList;
@@ -5151,7 +5151,7 @@ class Parser {
         *
         * @return array
         */
-       function getFunctionHooks() {
+       public function getFunctionHooks() {
                return array_keys( $this->mFunctionHooks );
        }
 
@@ -5165,7 +5165,7 @@ class Parser {
         * @throws MWException
         * @return null
         */
-       function setFunctionTagHook( $tag, $callback, $flags ) {
+       public function setFunctionTagHook( $tag, $callback, $flags ) {
                $tag = strtolower( $tag );
                if ( preg_match( '/[<>\r\n]/', $tag, $m ) ) {
                        throw new MWException( "Invalid character {$m[0]} in setFunctionTagHook('$tag', ...) call" );
@@ -5191,7 +5191,7 @@ class Parser {
         *
         * @return array Array of link CSS classes, indexed by PDBK.
         */
-       function replaceLinkHolders( &$text, $options = 0 ) {
+       public function replaceLinkHolders( &$text, $options = 0 ) {
                return $this->mLinkHolders->replace( $text );
        }
 
@@ -5202,7 +5202,7 @@ class Parser {
         * @param string $text
         * @return string
         */
-       function replaceLinkHoldersText( $text ) {
+       public function replaceLinkHoldersText( $text ) {
                return $this->mLinkHolders->replaceText( $text );
        }
 
@@ -5219,7 +5219,7 @@ class Parser {
         * @param array $params
         * @return string HTML
         */
-       function renderImageGallery( $text, $params ) {
+       public function renderImageGallery( $text, $params ) {
                wfProfileIn( __METHOD__ );
 
                $mode = false;
@@ -5380,7 +5380,7 @@ class Parser {
         * @param string $handler
         * @return array
         */
-       function getImageParams( $handler ) {
+       public function getImageParams( $handler ) {
                if ( $handler ) {
                        $handlerClass = get_class( $handler );
                } else {
@@ -5428,7 +5428,7 @@ class Parser {
         * @param LinkHolderArray|bool $holders
         * @return string HTML
         */
-       function makeImage( $title, $options, $holders = false ) {
+       public function makeImage( $title, $options, $holders = false ) {
                # Check if the options text is of the form "options|alt text"
                # Options are:
                #  * thumbnail  make a thumbnail with enlarge-icon and caption, alignment depends on lang
@@ -5527,7 +5527,7 @@ class Parser {
                                                                $paramName = 'no-link';
                                                                $value = true;
                                                                $validated = true;
-                                                       } elseif ( preg_match( "/^(?i)$prots/", $value ) ) {
+                                                       } elseif ( preg_match( "/^((?i)$prots)/", $value ) ) {
                                                                if ( preg_match( "/^((?i)$prots)$chars+$/u", $value, $m ) ) {
                                                                        $paramName = 'link-url';
                                                                        $this->mOutput->addExternalLink( $value );
@@ -5667,7 +5667,7 @@ class Parser {
         * Set a flag in the output object indicating that the content is dynamic and
         * shouldn't be cached.
         */
-       function disableCache() {
+       public function disableCache() {
                wfDebug( "Parser output marked as uncacheable.\n" );
                if ( !$this->mOutput ) {
                        throw new MWException( __METHOD__ .
@@ -5685,7 +5685,7 @@ class Parser {
         * @param bool|PPFrame $frame
         * @return string
         */
-       function attributeStripCallback( &$text, $frame = false ) {
+       public function attributeStripCallback( &$text, $frame = false ) {
                $text = $this->replaceVariables( $text, $frame );
                $text = $this->mStripState->unstripBoth( $text );
                return $text;
@@ -5696,7 +5696,7 @@ class Parser {
         *
         * @return array
         */
-       function getTags() {
+       public function getTags() {
                return array_merge(
                        array_keys( $this->mTransparentTagHooks ),
                        array_keys( $this->mTagHooks ),
@@ -5714,7 +5714,7 @@ class Parser {
         *
         * @return string
         */
-       function replaceTransparentTags( $text ) {
+       public function replaceTransparentTags( $text ) {
                $matches = array();
                $elements = array_keys( $this->mTransparentTagHooks );
                $text = self::extractTagsAndParams( $elements, $text, $matches, $this->mUniqPrefix );
@@ -5915,7 +5915,7 @@ class Parser {
         *
         * @return int|null
         */
-       function getRevisionId() {
+       public function getRevisionId() {
                return $this->mRevisionId;
        }
 
@@ -5942,7 +5942,7 @@ class Parser {
         * the default server-local timestamp
         * @return string
         */
-       function getRevisionTimestamp() {
+       public function getRevisionTimestamp() {
                if ( is_null( $this->mRevisionTimestamp ) ) {
                        wfProfileIn( __METHOD__ );
 
@@ -5969,7 +5969,7 @@ class Parser {
         *
         * @return string User name
         */
-       function getRevisionUser() {
+       public function getRevisionUser() {
                if ( is_null( $this->mRevisionUser ) ) {
                        $revObject = $this->getRevisionObject();
 
@@ -5989,7 +5989,7 @@ class Parser {
         *
         * @return int|null Revision size
         */
-       function getRevisionSize() {
+       public function getRevisionSize() {
                if ( is_null( $this->mRevisionSize ) ) {
                        $revObject = $this->getRevisionObject();
 
@@ -6117,7 +6117,7 @@ class Parser {
         *
         * @return string
         */
-       function testSrvus( $text, Title $title, ParserOptions $options, $outputType = self::OT_HTML ) {
+       public function testSrvus( $text, Title $title, ParserOptions $options, $outputType = self::OT_HTML ) {
                $magicScopeVariable = $this->lock();
                $this->startParse( $title, $options, $outputType, true );
 
@@ -6133,7 +6133,7 @@ class Parser {
         * @param ParserOptions $options
         * @return string
         */
-       function testPst( $text, Title $title, ParserOptions $options ) {
+       public function testPst( $text, Title $title, ParserOptions $options ) {
                return $this->preSaveTransform( $text, $title, $options->getUser(), $options );
        }
 
@@ -6143,7 +6143,7 @@ class Parser {
         * @param ParserOptions $options
         * @return string
         */
-       function testPreprocess( $text, Title $title, ParserOptions $options ) {
+       public function testPreprocess( $text, Title $title, ParserOptions $options ) {
                return $this->testSrvus( $text, $title, $options, self::OT_PREPROCESS );
        }
 
@@ -6163,7 +6163,7 @@ class Parser {
         *
         * @return string
         */
-       function markerSkipCallback( $s, $callback ) {
+       public function markerSkipCallback( $s, $callback ) {
                $i = 0;
                $out = '';
                while ( $i < strlen( $s ) ) {
@@ -6193,7 +6193,7 @@ class Parser {
         * @param string $text Input string
         * @return string
         */
-       function killMarkers( $text ) {
+       public function killMarkers( $text ) {
                return $this->mStripState->killMarkers( $text );
        }
 
@@ -6213,7 +6213,7 @@ class Parser {
         *
         * @return array
         */
-       function serializeHalfParsedText( $text ) {
+       public function serializeHalfParsedText( $text ) {
                wfProfileIn( __METHOD__ );
                $data = array(
                        'text' => $text,
@@ -6240,7 +6240,7 @@ class Parser {
         * @throws MWException
         * @return string
         */
-       function unserializeHalfParsedText( $data ) {
+       public function unserializeHalfParsedText( $data ) {
                if ( !isset( $data['version'] ) || $data['version'] != self::HALF_PARSED_VERSION ) {
                        throw new MWException( __METHOD__ . ': invalid version' );
                }
@@ -6265,7 +6265,7 @@ class Parser {
         *
         * @return bool
         */
-       function isValidHalfParsedText( $data ) {
+       public function isValidHalfParsedText( $data ) {
                return isset( $data['version'] ) && $data['version'] == self::HALF_PARSED_VERSION;
        }
 
index 6102ca4..7952300 100644 (file)
@@ -95,7 +95,7 @@ class ParserCache {
         * @param ParserOptions $popts
         * @return string
         */
-       function getETag( $article, $popts ) {
+       public function getETag( $article, $popts ) {
                return 'W/"' . $this->getParserOutputKey( $article,
                        $popts->optionsHash( ParserOptions::legacyOptions(), $article->getTitle() ) ) .
                                "--" . $article->getTouched() . '"';
index 2db0597..174c1d6 100644 (file)
  */
 class ParserDiffTest
 {
-       var $parsers, $conf;
-       var $shortOutput = false;
+       public $parsers;
+       public $conf;
+       public $shortOutput = false;
+       public $dtUniqPrefix;
 
-       var $dtUniqPrefix;
-
-       function __construct( $conf ) {
+       public function __construct( $conf ) {
                if ( !isset( $conf['parsers'] ) ) {
                        throw new MWException( __METHOD__ . ': no parsers specified' );
                }
                $this->conf = $conf;
        }
 
-       function init() {
+       public function init() {
                if ( !is_null( $this->parsers ) ) {
                        return;
                }
@@ -64,7 +64,7 @@ class ParserDiffTest
                }
        }
 
-       function __call( $name, $args ) {
+       public function __call( $name, $args ) {
                $this->init();
                $results = array();
                $mismatch = false;
@@ -109,7 +109,7 @@ class ParserDiffTest
                return $lastResult;
        }
 
-       function formatArray( $array ) {
+       public function formatArray( $array ) {
                if ( $this->shortOutput ) {
                        foreach ( $array as $key => $value ) {
                                if ( $value instanceof ParserOutput ) {
@@ -120,7 +120,7 @@ class ParserDiffTest
                return var_export( $array, true );
        }
 
-       function setFunctionHook( $id, $callback, $flags = 0 ) {
+       public function setFunctionHook( $id, $callback, $flags = 0 ) {
                $this->init();
                foreach ( $this->parsers as $parser ) {
                        $parser->setFunctionHook( $id, $callback, $flags );
@@ -131,7 +131,7 @@ class ParserDiffTest
         * @param Parser $parser
         * @return bool
         */
-       function onClearState( &$parser ) {
+       public function onClearState( &$parser ) {
                // hack marker prefixes to get identical output
                if ( !isset( $this->dtUniqPrefix ) ) {
                        $this->dtUniqPrefix = $parser->uniqPrefix();
index 411702f..2ca9d50 100644 (file)
@@ -34,108 +34,108 @@ class ParserOptions {
        /**
         * Interlanguage links are removed and returned in an array
         */
-       var $mInterwikiMagic;
+       public $mInterwikiMagic;
 
        /**
         * Allow external images inline?
         */
-       var $mAllowExternalImages;
+       public $mAllowExternalImages;
 
        /**
         * If not, any exception?
         */
-       var $mAllowExternalImagesFrom;
+       public $mAllowExternalImagesFrom;
 
        /**
         * If not or it doesn't match, should we check an on-wiki whitelist?
         */
-       var $mEnableImageWhitelist;
+       public $mEnableImageWhitelist;
 
        /**
         * Date format index
         */
-       var $mDateFormat = null;
+       public $mDateFormat = null;
 
        /**
         * Create "edit section" links?
         */
-       var $mEditSection = true;
+       public $mEditSection = true;
 
        /**
         * Allow inclusion of special pages?
         */
-       var $mAllowSpecialInclusion;
+       public $mAllowSpecialInclusion;
 
        /**
         * Use tidy to cleanup output HTML?
         */
-       var $mTidy = false;
+       public $mTidy = false;
 
        /**
         * Which lang to call for PLURAL and GRAMMAR
         */
-       var $mInterfaceMessage = false;
+       public $mInterfaceMessage = false;
 
        /**
         * Overrides $mInterfaceMessage with arbitrary language
         */
-       var $mTargetLanguage = null;
+       public $mTargetLanguage = null;
 
        /**
         * Maximum size of template expansions, in bytes
         */
-       var $mMaxIncludeSize;
+       public $mMaxIncludeSize;
 
        /**
         * Maximum number of nodes touched by PPFrame::expand()
         */
-       var $mMaxPPNodeCount;
+       public $mMaxPPNodeCount;
 
        /**
         * Maximum number of nodes generated by Preprocessor::preprocessToObj()
         */
-       var $mMaxGeneratedPPNodeCount;
+       public $mMaxGeneratedPPNodeCount;
 
        /**
         * Maximum recursion depth in PPFrame::expand()
         */
-       var $mMaxPPExpandDepth;
+       public $mMaxPPExpandDepth;
 
        /**
         * Maximum recursion depth for templates within templates
         */
-       var $mMaxTemplateDepth;
+       public $mMaxTemplateDepth;
 
        /**
         * Maximum number of calls per parse to expensive parser functions
         */
-       var $mExpensiveParserFunctionLimit;
+       public $mExpensiveParserFunctionLimit;
 
        /**
         * Remove HTML comments. ONLY APPLIES TO PREPROCESS OPERATIONS
         */
-       var $mRemoveComments = true;
+       public $mRemoveComments = true;
 
        /**
         * Callback for template fetching. Used as first argument to call_user_func().
         */
-       var $mTemplateCallback =
+       public $mTemplateCallback =
                array( 'Parser', 'statelessFetchTemplate' );
 
        /**
         * Enable limit report in an HTML comment on output
         */
-       var $mEnableLimitReport = false;
+       public $mEnableLimitReport = false;
 
        /**
         * Timestamp used for {{CURRENTDAY}} etc.
         */
-       var $mTimestamp;
+       public $mTimestamp;
 
        /**
         * Target attribute for external links
         */
-       var $mExternalLinkTarget;
+       public $mExternalLinkTarget;
 
        /**
         * Clean up signature texts?
@@ -143,32 +143,32 @@ class ParserOptions {
         * 1) Strip ~~~, ~~~~ and ~~~~~ out of signatures
         * 2) Substitute all transclusions
         */
-       var $mCleanSignatures;
+       public $mCleanSignatures;
 
        /**
         * Transform wiki markup when saving the page?
         */
-       var $mPreSaveTransform = true;
+       public $mPreSaveTransform = true;
 
        /**
         * Whether content conversion should be disabled
         */
-       var $mDisableContentConversion;
+       public $mDisableContentConversion;
 
        /**
         * Whether title conversion should be disabled
         */
-       var $mDisableTitleConversion;
+       public $mDisableTitleConversion;
 
        /**
         * Automatically number headings?
         */
-       var $mNumberHeadings;
+       public $mNumberHeadings;
 
        /**
         * Thumb size preferred by the user.
         */
-       var $mThumbSize;
+       public $mThumbSize;
 
        /**
         * Maximum article size of an article to be marked as "stub"
@@ -178,169 +178,169 @@ class ParserOptions {
        /**
         * Language object of the User language.
         */
-       var $mUserLang;
+       public $mUserLang;
 
        /**
         * @var User
         * Stored user object
         */
-       var $mUser;
+       public $mUser;
 
        /**
         * Parsing the page for a "preview" operation?
         */
-       var $mIsPreview = false;
+       public $mIsPreview = false;
 
        /**
         * Parsing the page for a "preview" operation on a single section?
         */
-       var $mIsSectionPreview = false;
+       public $mIsSectionPreview = false;
 
        /**
         * Parsing the printable version of the page?
         */
-       var $mIsPrintable = false;
+       public $mIsPrintable = false;
 
        /**
         * Extra key that should be present in the caching key.
         */
-       var $mExtraKey = '';
+       public $mExtraKey = '';
 
        /**
         * Function to be called when an option is accessed.
         */
        protected $onAccessCallback = null;
 
-       function getInterwikiMagic() {
+       public function getInterwikiMagic() {
                return $this->mInterwikiMagic;
        }
 
-       function getAllowExternalImages() {
+       public function getAllowExternalImages() {
                return $this->mAllowExternalImages;
        }
 
-       function getAllowExternalImagesFrom() {
+       public function getAllowExternalImagesFrom() {
                return $this->mAllowExternalImagesFrom;
        }
 
-       function getEnableImageWhitelist() {
+       public function getEnableImageWhitelist() {
                return $this->mEnableImageWhitelist;
        }
 
-       function getEditSection() {
+       public function getEditSection() {
                return $this->mEditSection;
        }
 
-       function getNumberHeadings() {
+       public function getNumberHeadings() {
                $this->optionUsed( 'numberheadings' );
 
                return $this->mNumberHeadings;
        }
 
-       function getAllowSpecialInclusion() {
+       public function getAllowSpecialInclusion() {
                return $this->mAllowSpecialInclusion;
        }
 
-       function getTidy() {
+       public function getTidy() {
                return $this->mTidy;
        }
 
-       function getInterfaceMessage() {
+       public function getInterfaceMessage() {
                return $this->mInterfaceMessage;
        }
 
-       function getTargetLanguage() {
+       public function getTargetLanguage() {
                return $this->mTargetLanguage;
        }
 
-       function getMaxIncludeSize() {
+       public function getMaxIncludeSize() {
                return $this->mMaxIncludeSize;
        }
 
-       function getMaxPPNodeCount() {
+       public function getMaxPPNodeCount() {
                return $this->mMaxPPNodeCount;
        }
 
-       function getMaxGeneratedPPNodeCount() {
+       public function getMaxGeneratedPPNodeCount() {
                return $this->mMaxGeneratedPPNodeCount;
        }
 
-       function getMaxPPExpandDepth() {
+       public function getMaxPPExpandDepth() {
                return $this->mMaxPPExpandDepth;
        }
 
-       function getMaxTemplateDepth() {
+       public function getMaxTemplateDepth() {
                return $this->mMaxTemplateDepth;
        }
 
        /* @since 1.20 */
-       function getExpensiveParserFunctionLimit() {
+       public function getExpensiveParserFunctionLimit() {
                return $this->mExpensiveParserFunctionLimit;
        }
 
-       function getRemoveComments() {
+       public function getRemoveComments() {
                return $this->mRemoveComments;
        }
 
-       function getTemplateCallback() {
+       public function getTemplateCallback() {
                return $this->mTemplateCallback;
        }
 
-       function getEnableLimitReport() {
+       public function getEnableLimitReport() {
                return $this->mEnableLimitReport;
        }
 
-       function getCleanSignatures() {
+       public function getCleanSignatures() {
                return $this->mCleanSignatures;
        }
 
-       function getExternalLinkTarget() {
+       public function getExternalLinkTarget() {
                return $this->mExternalLinkTarget;
        }
 
-       function getDisableContentConversion() {
+       public function getDisableContentConversion() {
                return $this->mDisableContentConversion;
        }
 
-       function getDisableTitleConversion() {
+       public function getDisableTitleConversion() {
                return $this->mDisableTitleConversion;
        }
 
-       function getThumbSize() {
+       public function getThumbSize() {
                $this->optionUsed( 'thumbsize' );
 
                return $this->mThumbSize;
        }
 
-       function getStubThreshold() {
+       public function getStubThreshold() {
                $this->optionUsed( 'stubthreshold' );
 
                return $this->mStubThreshold;
        }
 
-       function getIsPreview() {
+       public function getIsPreview() {
                return $this->mIsPreview;
        }
 
-       function getIsSectionPreview() {
+       public function getIsSectionPreview() {
                return $this->mIsSectionPreview;
        }
 
-       function getIsPrintable() {
+       public function getIsPrintable() {
                $this->optionUsed( 'printable' );
 
                return $this->mIsPrintable;
        }
 
-       function getUser() {
+       public function getUser() {
                return $this->mUser;
        }
 
-       function getPreSaveTransform() {
+       public function getPreSaveTransform() {
                return $this->mPreSaveTransform;
        }
 
-       function getDateFormat() {
+       public function getDateFormat() {
                $this->optionUsed( 'dateformat' );
                if ( !isset( $this->mDateFormat ) ) {
                        $this->mDateFormat = $this->mUser->getDatePreference();
@@ -348,7 +348,7 @@ class ParserOptions {
                return $this->mDateFormat;
        }
 
-       function getTimestamp() {
+       public function getTimestamp() {
                if ( !isset( $this->mTimestamp ) ) {
                        $this->mTimestamp = wfTimestampNow();
                }
@@ -371,7 +371,7 @@ class ParserOptions {
         * @return Language
         * @since 1.19
         */
-       function getUserLangObj() {
+       public function getUserLangObj() {
                $this->optionUsed( 'userlang' );
                return $this->mUserLang;
        }
@@ -382,108 +382,108 @@ class ParserOptions {
         * @return string Language code
         * @since 1.17
         */
-       function getUserLang() {
+       public function getUserLang() {
                return $this->getUserLangObj()->getCode();
        }
 
-       function setInterwikiMagic( $x ) {
+       public function setInterwikiMagic( $x ) {
                return wfSetVar( $this->mInterwikiMagic, $x );
        }
 
-       function setAllowExternalImages( $x ) {
+       public function setAllowExternalImages( $x ) {
                return wfSetVar( $this->mAllowExternalImages, $x );
        }
 
-       function setAllowExternalImagesFrom( $x ) {
+       public function setAllowExternalImagesFrom( $x ) {
                return wfSetVar( $this->mAllowExternalImagesFrom, $x );
        }
 
-       function setEnableImageWhitelist( $x ) {
+       public function setEnableImageWhitelist( $x ) {
                return wfSetVar( $this->mEnableImageWhitelist, $x );
        }
 
-       function setDateFormat( $x ) {
+       public function setDateFormat( $x ) {
                return wfSetVar( $this->mDateFormat, $x );
        }
 
-       function setEditSection( $x ) {
+       public function setEditSection( $x ) {
                return wfSetVar( $this->mEditSection, $x );
        }
 
-       function setNumberHeadings( $x ) {
+       public function setNumberHeadings( $x ) {
                return wfSetVar( $this->mNumberHeadings, $x );
        }
 
-       function setAllowSpecialInclusion( $x ) {
+       public function setAllowSpecialInclusion( $x ) {
                return wfSetVar( $this->mAllowSpecialInclusion, $x );
        }
 
-       function setTidy( $x ) {
+       public function setTidy( $x ) {
                return wfSetVar( $this->mTidy, $x );
        }
 
-       function setInterfaceMessage( $x ) {
+       public function setInterfaceMessage( $x ) {
                return wfSetVar( $this->mInterfaceMessage, $x );
        }
 
-       function setTargetLanguage( $x ) {
+       public function setTargetLanguage( $x ) {
                return wfSetVar( $this->mTargetLanguage, $x, true );
        }
 
-       function setMaxIncludeSize( $x ) {
+       public function setMaxIncludeSize( $x ) {
                return wfSetVar( $this->mMaxIncludeSize, $x );
        }
 
-       function setMaxPPNodeCount( $x ) {
+       public function setMaxPPNodeCount( $x ) {
                return wfSetVar( $this->mMaxPPNodeCount, $x );
        }
 
-       function setMaxGeneratedPPNodeCount( $x ) {
+       public function setMaxGeneratedPPNodeCount( $x ) {
                return wfSetVar( $this->mMaxGeneratedPPNodeCount, $x );
        }
 
-       function setMaxTemplateDepth( $x ) {
+       public function setMaxTemplateDepth( $x ) {
                return wfSetVar( $this->mMaxTemplateDepth, $x );
        }
 
        /* @since 1.20 */
-       function setExpensiveParserFunctionLimit( $x ) {
+       public function setExpensiveParserFunctionLimit( $x ) {
                return wfSetVar( $this->mExpensiveParserFunctionLimit, $x );
        }
 
-       function setRemoveComments( $x ) {
+       public function setRemoveComments( $x ) {
                return wfSetVar( $this->mRemoveComments, $x );
        }
 
-       function setTemplateCallback( $x ) {
+       public function setTemplateCallback( $x ) {
                return wfSetVar( $this->mTemplateCallback, $x );
        }
 
-       function enableLimitReport( $x = true ) {
+       public function enableLimitReport( $x = true ) {
                return wfSetVar( $this->mEnableLimitReport, $x );
        }
 
-       function setTimestamp( $x ) {
+       public function setTimestamp( $x ) {
                return wfSetVar( $this->mTimestamp, $x );
        }
 
-       function setCleanSignatures( $x ) {
+       public function setCleanSignatures( $x ) {
                return wfSetVar( $this->mCleanSignatures, $x );
        }
 
-       function setExternalLinkTarget( $x ) {
+       public function setExternalLinkTarget( $x ) {
                return wfSetVar( $this->mExternalLinkTarget, $x );
        }
 
-       function disableContentConversion( $x = true ) {
+       public function disableContentConversion( $x = true ) {
                return wfSetVar( $this->mDisableContentConversion, $x );
        }
 
-       function disableTitleConversion( $x = true ) {
+       public function disableTitleConversion( $x = true ) {
                return wfSetVar( $this->mDisableTitleConversion, $x );
        }
 
-       function setUserLang( $x ) {
+       public function setUserLang( $x ) {
                if ( is_string( $x ) ) {
                        $x = Language::factory( $x );
                }
@@ -491,34 +491,35 @@ class ParserOptions {
                return wfSetVar( $this->mUserLang, $x );
        }
 
-       function setThumbSize( $x ) {
+       public function setThumbSize( $x ) {
                return wfSetVar( $this->mThumbSize, $x );
        }
 
-       function setStubThreshold( $x ) {
+       public function setStubThreshold( $x ) {
                return wfSetVar( $this->mStubThreshold, $x );
        }
 
-       function setPreSaveTransform( $x ) {
+       public function setPreSaveTransform( $x ) {
                return wfSetVar( $this->mPreSaveTransform, $x );
        }
 
-       function setIsPreview( $x ) {
+       public function setIsPreview( $x ) {
                return wfSetVar( $this->mIsPreview, $x );
        }
 
-       function setIsSectionPreview( $x ) {
+       public function setIsSectionPreview( $x ) {
                return wfSetVar( $this->mIsSectionPreview, $x );
        }
 
-       function setIsPrintable( $x ) {
+       public function setIsPrintable( $x ) {
                return wfSetVar( $this->mIsPrintable, $x );
        }
 
        /**
         * Extra key that should be present in the parser cache key.
+        * @param string $key
         */
-       function addExtraKey( $key ) {
+       public function addExtraKey( $key ) {
                $this->mExtraKey .= '!' . $key;
        }
 
@@ -527,7 +528,7 @@ class ParserOptions {
         * @param User $user
         * @param Language $lang
         */
-       function __construct( $user = null, $lang = null ) {
+       public function __construct( $user = null, $lang = null ) {
                if ( $user === null ) {
                        global $wgUser;
                        if ( $wgUser === null ) {
@@ -623,7 +624,7 @@ class ParserOptions {
         * This is a private API with the parser.
         * @param callable $callback
         */
-       function registerWatcher( $callback ) {
+       public function registerWatcher( $callback ) {
                $this->onAccessCallback = $callback;
        }
 
index 22b127d..75fc01f 100644 (file)
@@ -22,7 +22,7 @@
  * @ingroup Parser
  */
 class ParserOutput extends CacheTime {
-       var $mText,                       # The output text
+       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
                $mTitleText,                  # title text of the chosen language variant
@@ -61,7 +61,7 @@ class ParserOutput extends CacheTime {
        const EDITSECTION_REGEX =
                '#<(?:mw:)?editsection page="(.*?)" section="(.*?)"(?:/>|>(.*?)(</(?:mw:)?editsection>))#';
 
-       function __construct( $text = '', $languageLinks = array(), $categoryLinks = array(),
+       public function __construct( $text = '', $languageLinks = array(), $categoryLinks = array(),
                $containsOldMagic = false, $titletext = ''
        ) {
                $this->mText = $text;
@@ -71,7 +71,7 @@ class ParserOutput extends CacheTime {
                $this->mTitleText = $titletext;
        }
 
-       function getText() {
+       public function getText() {
                wfProfileIn( __METHOD__ );
                $text = $this->mText;
                if ( $this->mEditSectionTokens ) {
@@ -102,7 +102,7 @@ class ParserOutput extends CacheTime {
         * @throws MWException
         * @return mixed
         */
-       function replaceEditSectionLinksCallback( $m ) {
+       public function replaceEditSectionLinksCallback( $m ) {
                global $wgOut, $wgLang;
                $args = array(
                        htmlspecialchars_decode( $m[1] ),
@@ -118,181 +118,181 @@ class ParserOutput extends CacheTime {
                return call_user_func_array( array( $skin, 'doEditSectionLink' ), $args );
        }
 
-       function &getLanguageLinks() {
+       public function &getLanguageLinks() {
                return $this->mLanguageLinks;
        }
 
-       function getInterwikiLinks() {
+       public function getInterwikiLinks() {
                return $this->mInterwikiLinks;
        }
 
-       function getCategoryLinks() {
+       public function getCategoryLinks() {
                return array_keys( $this->mCategories );
        }
 
-       function &getCategories() {
+       public function &getCategories() {
                return $this->mCategories;
        }
 
-       function getTitleText() {
+       public function getTitleText() {
                return $this->mTitleText;
        }
 
-       function getSections() {
+       public function getSections() {
                return $this->mSections;
        }
 
-       function getEditSectionTokens() {
+       public function getEditSectionTokens() {
                return $this->mEditSectionTokens;
        }
 
-       function &getLinks() {
+       public function &getLinks() {
                return $this->mLinks;
        }
 
-       function &getTemplates() {
+       public function &getTemplates() {
                return $this->mTemplates;
        }
 
-       function &getTemplateIds() {
+       public function &getTemplateIds() {
                return $this->mTemplateIds;
        }
 
-       function &getImages() {
+       public function &getImages() {
                return $this->mImages;
        }
 
-       function &getFileSearchOptions() {
+       public function &getFileSearchOptions() {
                return $this->mFileSearchOptions;
        }
 
-       function &getExternalLinks() {
+       public function &getExternalLinks() {
                return $this->mExternalLinks;
        }
 
-       function getNoGallery() {
+       public function getNoGallery() {
                return $this->mNoGallery;
        }
 
-       function getHeadItems() {
+       public function getHeadItems() {
                return $this->mHeadItems;
        }
 
-       function getModules() {
+       public function getModules() {
                return $this->mModules;
        }
 
-       function getModuleScripts() {
+       public function getModuleScripts() {
                return $this->mModuleScripts;
        }
 
-       function getModuleStyles() {
+       public function getModuleStyles() {
                return $this->mModuleStyles;
        }
 
-       function getModuleMessages() {
+       public function getModuleMessages() {
                return $this->mModuleMessages;
        }
 
        /** @since 1.23 */
-       function getJsConfigVars() {
+       public function getJsConfigVars() {
                return $this->mJsConfigVars;
        }
 
-       function getOutputHooks() {
+       public function getOutputHooks() {
                return (array)$this->mOutputHooks;
        }
 
-       function getWarnings() {
+       public function getWarnings() {
                return array_keys( $this->mWarnings );
        }
 
-       function getIndexPolicy() {
+       public function getIndexPolicy() {
                return $this->mIndexPolicy;
        }
 
-       function getTOCHTML() {
+       public function getTOCHTML() {
                return $this->mTOCHTML;
        }
 
-       function getTimestamp() {
+       public function getTimestamp() {
                return $this->mTimestamp;
        }
 
-       function getLimitReportData() {
+       public function getLimitReportData() {
                return $this->mLimitReportData;
        }
 
-       function getTOCEnabled() {
+       public function getTOCEnabled() {
                return $this->mTOCEnabled;
        }
 
-       function setText( $text ) {
+       public function setText( $text ) {
                return wfSetVar( $this->mText, $text );
        }
 
-       function setLanguageLinks( $ll ) {
+       public function setLanguageLinks( $ll ) {
                return wfSetVar( $this->mLanguageLinks, $ll );
        }
 
-       function setCategoryLinks( $cl ) {
+       public function setCategoryLinks( $cl ) {
                return wfSetVar( $this->mCategories, $cl );
        }
 
-       function setTitleText( $t ) {
+       public function setTitleText( $t ) {
                return wfSetVar( $this->mTitleText, $t );
        }
 
-       function setSections( $toc ) {
+       public function setSections( $toc ) {
                return wfSetVar( $this->mSections, $toc );
        }
 
-       function setEditSectionTokens( $t ) {
+       public function setEditSectionTokens( $t ) {
                return wfSetVar( $this->mEditSectionTokens, $t );
        }
 
-       function setIndexPolicy( $policy ) {
+       public function setIndexPolicy( $policy ) {
                return wfSetVar( $this->mIndexPolicy, $policy );
        }
 
-       function setTOCHTML( $tochtml ) {
+       public function setTOCHTML( $tochtml ) {
                return wfSetVar( $this->mTOCHTML, $tochtml );
        }
 
-       function setTimestamp( $timestamp ) {
+       public function setTimestamp( $timestamp ) {
                return wfSetVar( $this->mTimestamp, $timestamp );
        }
 
-       function setTOCEnabled( $flag ) {
+       public function setTOCEnabled( $flag ) {
                return wfSetVar( $this->mTOCEnabled, $flag );
        }
 
-       function addCategory( $c, $sort ) {
+       public function addCategory( $c, $sort ) {
                $this->mCategories[$c] = $sort;
        }
 
-       function addLanguageLink( $t ) {
+       public function addLanguageLink( $t ) {
                $this->mLanguageLinks[] = $t;
        }
 
-       function addWarning( $s ) {
+       public function addWarning( $s ) {
                $this->mWarnings[$s] = 1;
        }
 
-       function addOutputHook( $hook, $data = false ) {
+       public function addOutputHook( $hook, $data = false ) {
                $this->mOutputHooks[] = array( $hook, $data );
        }
 
-       function setNewSection( $value ) {
+       public function setNewSection( $value ) {
                $this->mNewSection = (bool)$value;
        }
-       function hideNewSection( $value ) {
+       public function hideNewSection( $value ) {
                $this->mHideNewSection = (bool)$value;
        }
-       function getHideNewSection() {
+       public function getHideNewSection() {
                return (bool)$this->mHideNewSection;
        }
-       function getNewSection() {
+       public function getNewSection() {
                return (bool)$this->mNewSection;
        }
 
@@ -303,7 +303,7 @@ class ParserOutput extends CacheTime {
         * @param string $url The url to check
         * @return bool
         */
-       static function isLinkInternal( $internal, $url ) {
+       public static function isLinkInternal( $internal, $url ) {
                return (bool)preg_match( '/^' .
                        # If server is proto relative, check also for http/https links
                        ( substr( $internal, 0, 2 ) === '//' ? '(?:https?:)?' : '' ) .
@@ -314,7 +314,7 @@ class ParserOutput extends CacheTime {
                );
        }
 
-       function addExternalLink( $url ) {
+       public function addExternalLink( $url ) {
                # We don't register links pointing to our own server, unless... :-)
                global $wgServer, $wgRegisterInternalExternals;
 
@@ -333,7 +333,7 @@ class ParserOutput extends CacheTime {
         * @param Title $title
         * @param int|null $id Optional known page_id so we can skip the lookup
         */
-       function addLink( Title $title, $id = null ) {
+       public function addLink( Title $title, $id = null ) {
                if ( $title->isExternal() ) {
                        // Don't record interwikis in pagelinks
                        $this->addInterwikiLink( $title );
@@ -368,7 +368,7 @@ class ParserOutput extends CacheTime {
         * @param string $sha1 Base 36 SHA-1 of file (or false if non-existing)
         * @return void
         */
-       function addImage( $name, $timestamp = null, $sha1 = null ) {
+       public function addImage( $name, $timestamp = null, $sha1 = null ) {
                $this->mImages[$name] = 1;
                if ( $timestamp !== null && $sha1 !== null ) {
                        $this->mFileSearchOptions[$name] = array( 'time' => $timestamp, 'sha1' => $sha1 );
@@ -382,7 +382,7 @@ class ParserOutput extends CacheTime {
         * @param int $rev_id
         * @return void
         */
-       function addTemplate( $title, $page_id, $rev_id ) {
+       public function addTemplate( $title, $page_id, $rev_id ) {
                $ns = $title->getNamespace();
                $dbk = $title->getDBkey();
                if ( !isset( $this->mTemplates[$ns] ) ) {
@@ -399,7 +399,7 @@ class ParserOutput extends CacheTime {
         * @param Title $title Title object, must be an interwiki link
         * @throws MWException If given invalid input
         */
-       function addInterwikiLink( $title ) {
+       public function addInterwikiLink( $title ) {
                if ( !$title->isExternal() ) {
                        throw new MWException( 'Non-interwiki link passed, internal parser error.' );
                }
@@ -417,7 +417,7 @@ class ParserOutput extends CacheTime {
         * @param string $section
         * @param string|bool $tag
         */
-       function addHeadItem( $section, $tag = false ) {
+       public function addHeadItem( $section, $tag = false ) {
                if ( $tag !== false ) {
                        $this->mHeadItems[$tag] = $section;
                } else {
@@ -502,6 +502,7 @@ class ParserOutput extends CacheTime {
 
        /**
         * Fairly generic flag setter thingy.
+        * @param string $flag
         */
        public function setFlag( $flag ) {
                $this->mFlags[$flag] = true;
@@ -748,7 +749,7 @@ class ParserOutput extends CacheTime {
         * Resets the parse start timestamps for future calls to getTimeSinceStart()
         * @since 1.22
         */
-       function resetParseStartTime() {
+       public function resetParseStartTime() {
                $this->mParseStartTime = self::getTimes();
        }
 
@@ -763,7 +764,7 @@ class ParserOutput extends CacheTime {
         * @param string $clock
         * @return float|null
         */
-       function getTimeSinceStart( $clock ) {
+       public function getTimeSinceStart( $clock ) {
                if ( !isset( $this->mParseStartTime[$clock] ) ) {
                        return null;
                }
@@ -791,7 +792,7 @@ class ParserOutput extends CacheTime {
         * @param string $key Message key
         * @param mixed $value Appropriate for Message::params()
         */
-       function setLimitReportData( $key, $value ) {
+       public function setLimitReportData( $key, $value ) {
                $this->mLimitReportData[$key] = $value;
        }
 
@@ -809,7 +810,7 @@ class ParserOutput extends CacheTime {
        /**
         * Save space for for serialization by removing useless values
         */
-       function __sleep() {
+       public function __sleep() {
                return array_diff(
                        array_keys( get_object_vars( $this ) ),
                        array( 'mSecondaryDataUpdates', 'mParseStartTime' )
index 335bd61..b32593c 100644 (file)
@@ -30,14 +30,14 @@ interface Preprocessor {
         *
         * @param Parser $parser
         */
-       function __construct( $parser );
+       public function __construct( $parser );
 
        /**
         * Create a new top-level frame for expansion of a page
         *
         * @return PPFrame
         */
-       function newFrame();
+       public function newFrame();
 
        /**
         * Create a new custom frame for programmatic use of parameter replacement
@@ -47,7 +47,7 @@ interface Preprocessor {
         *
         * @return PPFrame
         */
-       function newCustomFrame( $args );
+       public function newCustomFrame( $args );
 
        /**
         * Create a new custom node for programmatic use of parameter replacement
@@ -55,7 +55,7 @@ interface Preprocessor {
         *
         * @param array $values
         */
-       function newPartNodeArray( $values );
+       public function newPartNodeArray( $values );
 
        /**
         * Preprocess text to a PPNode
@@ -65,7 +65,7 @@ interface Preprocessor {
         *
         * @return PPNode
         */
-       function preprocessToObj( $text, $flags = 0 );
+       public function preprocessToObj( $text, $flags = 0 );
 }
 
 /**
@@ -93,65 +93,92 @@ interface PPFrame {
         *
         * @return PPFrame
         */
-       function newChild( $args = false, $title = false, $indexOffset = 0 );
+       public function newChild( $args = false, $title = false, $indexOffset = 0 );
 
        /**
         * Expand a document tree node, caching the result on its parent with the given key
+        * @param string|int $key
+        * @param string|PPNode $root
+        * @param int $flags
+        * @return string
         */
-       function cachedExpand( $key, $root, $flags = 0 );
+       public function cachedExpand( $key, $root, $flags = 0 );
 
        /**
         * Expand a document tree node
+        * @param string|PPNode $root
+        * @param int $flags
+        * @return string
         */
-       function expand( $root, $flags = 0 );
+       public function expand( $root, $flags = 0 );
 
        /**
         * Implode with flags for expand()
+        * @param string $sep
+        * @param int $flags
+        * @param string|PPNode $args,...
+        * @return string
         */
-       function implodeWithFlags( $sep, $flags /*, ... */ );
+       public function implodeWithFlags( $sep, $flags /*, ... */ );
 
        /**
         * Implode with no flags specified
+        * @param string $sep
+        * @param string|PPNode $args,...
+        * @return string
         */
-       function implode( $sep /*, ... */ );
+       public function implode( $sep /*, ... */ );
 
        /**
         * Makes an object that, when expand()ed, will be the same as one obtained
         * with implode()
+        * @param string $sep
+        * @param string|PPNode $args,...
+        * @return PPNode
         */
-       function virtualImplode( $sep /*, ... */ );
+       public function virtualImplode( $sep /*, ... */ );
 
        /**
         * Virtual implode with brackets
+        * @param string $start
+        * @param string $sep
+        * @param string $end
+        * @param string|PPNode $args,...
+        * @return PPNode
         */
-       function virtualBracketedImplode( $start, $sep, $end /*, ... */ );
+       public function virtualBracketedImplode( $start, $sep, $end /*, ... */ );
 
        /**
         * Returns true if there are no arguments in this frame
         *
         * @return bool
         */
-       function isEmpty();
+       public function isEmpty();
 
        /**
         * Returns all arguments of this frame
+        * @return array
         */
-       function getArguments();
+       public function getArguments();
 
        /**
         * Returns all numbered arguments of this frame
+        * @return array
         */
-       function getNumberedArguments();
+       public function getNumberedArguments();
 
        /**
         * Returns all named arguments of this frame
+        * @return array
         */
-       function getNamedArguments();
+       public function getNamedArguments();
 
        /**
         * Get an argument to this frame by name
+        * @param string $name
+        * @return bool
         */
-       function getArgument( $name );
+       public function getArgument( $name );
 
        /**
         * Returns true if the infinite loop check is OK, false if a loop is detected
@@ -159,12 +186,13 @@ interface PPFrame {
         * @param Title $title
         * @return bool
         */
-       function loopCheck( $title );
+       public function loopCheck( $title );
 
        /**
         * Return true if the frame is a template frame
+        * @return bool
         */
-       function isTemplate();
+       public function isTemplate();
 
        /**
         * Set the "volatile" flag.
@@ -177,7 +205,7 @@ interface PPFrame {
         *
         * @param bool $flag
         */
-       function setVolatile( $flag = true );
+       public function setVolatile( $flag = true );
 
        /**
         * Get the "volatile" flag.
@@ -188,7 +216,7 @@ interface PPFrame {
         * @see self::setVolatile()
         * @return bool
         */
-       function isVolatile();
+       public function isVolatile();
 
        /**
         * Get the TTL of the frame's output.
@@ -202,7 +230,7 @@ interface PPFrame {
         *
         * @return int|null
         */
-       function getTTL();
+       public function getTTL();
 
        /**
         * Set the TTL of the output of this frame and all of its ancestors.
@@ -213,14 +241,14 @@ interface PPFrame {
         * @see self::getTTL()
         * @param int $ttl
         */
-       function setTTL( $ttl );
+       public function setTTL( $ttl );
 
        /**
         * Get a title of frame
         *
         * @return Title
         */
-       function getTitle();
+       public function getTitle();
 }
 
 /**
@@ -240,36 +268,42 @@ interface PPNode {
        /**
         * Get an array-type node containing the children of this node.
         * Returns false if this is not a tree node.
+        * @return PPNode
         */
-       function getChildren();
+       public function getChildren();
 
        /**
         * Get the first child of a tree node. False if there isn't one.
         *
         * @return PPNode
         */
-       function getFirstChild();
+       public function getFirstChild();
 
        /**
         * Get the next sibling of any node. False if there isn't one
+        * @return PPNode
         */
-       function getNextSibling();
+       public function getNextSibling();
 
        /**
         * Get all children of this tree node which have a given name.
         * Returns an array-type node, or false if this is not a tree node.
+        * @param string $type
+        * @return bool|PPNode
         */
-       function getChildrenOfType( $type );
+       public function getChildrenOfType( $type );
 
        /**
         * Returns the length of the array, or false if this is not an array-type node
         */
-       function getLength();
+       public function getLength();
 
        /**
         * Returns an item of an array-type node
+        * @param int $i
+        * @return bool|PPNode
         */
-       function item( $i );
+       public function item( $i );
 
        /**
         * Get the name of this node. The following names are defined here:
@@ -282,25 +316,29 @@ interface PPNode {
         *    #nodelist     An array-type node
         *
         * The subclass may define various other names for tree and leaf nodes.
+        * @return string
         */
-       function getName();
+       public function getName();
 
        /**
         * Split a "<part>" node into an associative array containing:
         *    name          PPNode name
         *    index         String index
         *    value         PPNode value
+        * @return array
         */
-       function splitArg();
+       public function splitArg();
 
        /**
         * Split an "<ext>" node into an associative array containing name, attr, inner and close
         * All values in the resulting array are PPNodes. Inner and close are optional.
+        * @return array
         */
-       function splitExt();
+       public function splitExt();
 
        /**
         * Split an "<h>" node
+        * @return array
         */
-       function splitHeading();
+       public function splitHeading();
 }
index f5fc3ec..8416ac3 100644 (file)
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class Preprocessor_DOM implements Preprocessor {
+       // @codingStandardsIgnoreEnd
 
        /**
         * @var Parser
         */
-       var $parser;
+       public $parser;
 
-       var $memoryLimit;
+       public $memoryLimit;
 
        const CACHE_VERSION = 1;
 
-       function __construct( $parser ) {
+       public function __construct( $parser ) {
                $this->parser = $parser;
                $mem = ini_get( 'memory_limit' );
                $this->memoryLimit = false;
@@ -51,7 +53,7 @@ class Preprocessor_DOM implements Preprocessor {
        /**
         * @return PPFrame_DOM
         */
-       function newFrame() {
+       public function newFrame() {
                return new PPFrame_DOM( $this );
        }
 
@@ -59,7 +61,7 @@ class Preprocessor_DOM implements Preprocessor {
         * @param array $args
         * @return PPCustomFrame_DOM
         */
-       function newCustomFrame( $args ) {
+       public function newCustomFrame( $args ) {
                return new PPCustomFrame_DOM( $this, $args );
        }
 
@@ -67,7 +69,7 @@ class Preprocessor_DOM implements Preprocessor {
         * @param array $values
         * @return PPNode_DOM
         */
-       function newPartNodeArray( $values ) {
+       public function newPartNodeArray( $values ) {
                //NOTE: DOM manipulation is slower than building & parsing XML! (or so Tim sais)
                $xml = "<list>";
 
@@ -110,7 +112,7 @@ class Preprocessor_DOM implements Preprocessor {
         * @throws MWException
         * @return bool
         */
-       function memCheck() {
+       public function memCheck() {
                if ( $this->memoryLimit === false ) {
                        return true;
                }
@@ -146,7 +148,7 @@ class Preprocessor_DOM implements Preprocessor {
         * @throws MWException
         * @return PPNode_DOM
         */
-       function preprocessToObj( $text, $flags = 0 ) {
+       public function preprocessToObj( $text, $flags = 0 ) {
                wfProfileIn( __METHOD__ );
                global $wgMemc, $wgPreprocessorCacheThreshold;
 
@@ -224,7 +226,7 @@ class Preprocessor_DOM implements Preprocessor {
         * @param int $flags
         * @return string
         */
-       function preprocessToXml( $text, $flags = 0 ) {
+       public function preprocessToXml( $text, $flags = 0 ) {
                wfProfileIn( __METHOD__ );
                $rules = array(
                        '{' => array(
@@ -773,18 +775,18 @@ class Preprocessor_DOM implements Preprocessor {
  * @ingroup Parser
  */
 class PPDStack {
-       var $stack, $rootAccum;
+       public $stack, $rootAccum;
 
        /**
         * @var PPDStack
         */
-       var $top;
-       var $out;
-       var $elementClass = 'PPDStackElement';
+       public $top;
+       public $out;
+       public $elementClass = 'PPDStackElement';
 
-       static $false = false;
+       public static $false = false;
 
-       function __construct() {
+       public function __construct() {
                $this->stack = array();
                $this->top = false;
                $this->rootAccum = '';
@@ -794,15 +796,15 @@ class PPDStack {
        /**
         * @return int
         */
-       function count() {
+       public function count() {
                return count( $this->stack );
        }
 
-       function &getAccum() {
+       public function &getAccum() {
                return $this->accum;
        }
 
-       function getCurrentPart() {
+       public function getCurrentPart() {
                if ( $this->top === false ) {
                        return false;
                } else {
@@ -810,7 +812,7 @@ class PPDStack {
                }
        }
 
-       function push( $data ) {
+       public function push( $data ) {
                if ( $data instanceof $this->elementClass ) {
                        $this->stack[] = $data;
                } else {
@@ -821,7 +823,7 @@ class PPDStack {
                $this->accum =& $this->top->getAccum();
        }
 
-       function pop() {
+       public function pop() {
                if ( !count( $this->stack ) ) {
                        throw new MWException( __METHOD__ . ': no elements remaining' );
                }
@@ -837,7 +839,7 @@ class PPDStack {
                return $temp;
        }
 
-       function addPart( $s = '' ) {
+       public function addPart( $s = '' ) {
                $this->top->addPart( $s );
                $this->accum =& $this->top->getAccum();
        }
@@ -845,7 +847,7 @@ class PPDStack {
        /**
         * @return array
         */
-       function getFlags() {
+       public function getFlags() {
                if ( !count( $this->stack ) ) {
                        return array(
                                'findEquals' => false,
@@ -862,15 +864,15 @@ class PPDStack {
  * @ingroup Parser
  */
 class PPDStackElement {
-       var     $open,              // Opening character (\n for heading)
+       public $open,              // Opening character (\n for heading)
                $close,             // Matching closing character
                $count,             // Number of opening characters found (number of "=" for heading)
                $parts,             // Array of PPDPart objects describing pipe-separated parts.
                $lineStart;         // True if the open char appeared at the start of the input line. Not set for headings.
 
-       var $partClass = 'PPDPart';
+       public $partClass = 'PPDPart';
 
-       function __construct( $data = array() ) {
+       public function __construct( $data = array() ) {
                $class = $this->partClass;
                $this->parts = array( new $class );
 
@@ -879,23 +881,23 @@ class PPDStackElement {
                }
        }
 
-       function &getAccum() {
+       public function &getAccum() {
                return $this->parts[count( $this->parts ) - 1]->out;
        }
 
-       function addPart( $s = '' ) {
+       public function addPart( $s = '' ) {
                $class = $this->partClass;
                $this->parts[] = new $class( $s );
        }
 
-       function getCurrentPart() {
+       public function getCurrentPart() {
                return $this->parts[count( $this->parts ) - 1];
        }
 
        /**
         * @return array
         */
-       function getFlags() {
+       public function getFlags() {
                $partCount = count( $this->parts );
                $findPipe = $this->open != "\n" && $this->open != '[';
                return array(
@@ -911,7 +913,7 @@ class PPDStackElement {
         * @param bool|int $openingCount
         * @return string
         */
-       function breakSyntax( $openingCount = false ) {
+       public function breakSyntax( $openingCount = false ) {
                if ( $this->open == "\n" ) {
                        $s = $this->parts[0]->out;
                } else {
@@ -937,14 +939,14 @@ class PPDStackElement {
  * @ingroup Parser
  */
 class PPDPart {
-       var $out; // Output accumulator string
+       public $out; // Output accumulator string
 
        // Optional member variables:
        //   eqpos        Position of equals sign in output accumulator
        //   commentEnd   Past-the-end input pointer for the last comment encountered
        //   visualEnd    Past-the-end input pointer for the end of the accumulator minus comments
 
-       function __construct( $out = '' ) {
+       public function __construct( $out = '' ) {
                $this->out = $out;
        }
 }
@@ -952,36 +954,38 @@ class PPDPart {
 /**
  * An expansion frame, used as a context to expand the result of preprocessToObj()
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPFrame_DOM implements PPFrame {
+       // @codingStandardsIgnoreEnd
 
        /**
         * @var Preprocessor
         */
-       var $preprocessor;
+       public $preprocessor;
 
        /**
         * @var Parser
         */
-       var $parser;
+       public $parser;
 
        /**
         * @var Title
         */
-       var $title;
-       var $titleCache;
+       public $title;
+       public $titleCache;
 
        /**
         * Hashtable listing templates which are disallowed for expansion in this frame,
         * having been encountered previously in parent frames.
         */
-       var $loopCheckHash;
+       public $loopCheckHash;
 
        /**
         * Recursion depth of this frame, top = 0
         * Note that this is NOT the same as expansion depth in expand()
         */
-       var $depth;
+       public $depth;
 
        private $volatile = false;
        private $ttl = null;
@@ -995,7 +999,7 @@ class PPFrame_DOM implements PPFrame {
         * Construct a new preprocessor frame.
         * @param Preprocessor $preprocessor The parent preprocessor
         */
-       function __construct( $preprocessor ) {
+       public function __construct( $preprocessor ) {
                $this->preprocessor = $preprocessor;
                $this->parser = $preprocessor->parser;
                $this->title = $this->parser->mTitle;
@@ -1014,7 +1018,7 @@ class PPFrame_DOM implements PPFrame {
         * @param int $indexOffset
         * @return PPTemplateFrame_DOM
         */
-       function newChild( $args = false, $title = false, $indexOffset = 0 ) {
+       public function newChild( $args = false, $title = false, $indexOffset = 0 ) {
                $namedArgs = array();
                $numberedArgs = array();
                if ( $title === false ) {
@@ -1059,7 +1063,7 @@ class PPFrame_DOM implements PPFrame {
         * @param int $flags
         * @return string
         */
-       function cachedExpand( $key, $root, $flags = 0 ) {
+       public function cachedExpand( $key, $root, $flags = 0 ) {
                // we don't have a parent, so we don't have a cache
                return $this->expand( $root, $flags );
        }
@@ -1070,7 +1074,7 @@ class PPFrame_DOM implements PPFrame {
         * @param int $flags
         * @return string
         */
-       function expand( $root, $flags = 0 ) {
+       public function expand( $root, $flags = 0 ) {
                static $expansionDepth = 0;
                if ( is_string( $root ) ) {
                        return $root;
@@ -1311,9 +1315,10 @@ class PPFrame_DOM implements PPFrame {
        /**
         * @param string $sep
         * @param int $flags
+        * @param string|PPNode_DOM|DOMDocument $args,...
         * @return string
         */
-       function implodeWithFlags( $sep, $flags /*, ... */ ) {
+       public function implodeWithFlags( $sep, $flags /*, ... */ ) {
                $args = array_slice( func_get_args(), 2 );
 
                $first = true;
@@ -1342,9 +1347,10 @@ class PPFrame_DOM implements PPFrame {
         * This previously called implodeWithFlags but has now been inlined to reduce stack depth
         *
         * @param string $sep
+        * @param string|PPNode_DOM|DOMDocument $args,...
         * @return string
         */
-       function implode( $sep /*, ... */ ) {
+       public function implode( $sep /*, ... */ ) {
                $args = array_slice( func_get_args(), 1 );
 
                $first = true;
@@ -1373,9 +1379,10 @@ class PPFrame_DOM implements PPFrame {
         * with implode()
         *
         * @param string $sep
+        * @param string|PPNode_DOM|DOMDocument $args,...
         * @return array
         */
-       function virtualImplode( $sep /*, ... */ ) {
+       public function virtualImplode( $sep /*, ... */ ) {
                $args = array_slice( func_get_args(), 1 );
                $out = array();
                $first = true;
@@ -1404,9 +1411,10 @@ class PPFrame_DOM implements PPFrame {
         * @param string $start
         * @param string $sep
         * @param string $end
+        * @param string|PPNode_DOM|DOMDocument $args,...
         * @return array
         */
-       function virtualBracketedImplode( $start, $sep, $end /*, ... */ ) {
+       public function virtualBracketedImplode( $start, $sep, $end /*, ... */ ) {
                $args = array_slice( func_get_args(), 3 );
                $out = array( $start );
                $first = true;
@@ -1431,11 +1439,11 @@ class PPFrame_DOM implements PPFrame {
                return $out;
        }
 
-       function __toString() {
+       public function __toString() {
                return 'frame{}';
        }
 
-       function getPDBK( $level = false ) {
+       public function getPDBK( $level = false ) {
                if ( $level === false ) {
                        return $this->title->getPrefixedDBkey();
                } else {
@@ -1446,21 +1454,21 @@ class PPFrame_DOM implements PPFrame {
        /**
         * @return array
         */
-       function getArguments() {
+       public function getArguments() {
                return array();
        }
 
        /**
         * @return array
         */
-       function getNumberedArguments() {
+       public function getNumberedArguments() {
                return array();
        }
 
        /**
         * @return array
         */
-       function getNamedArguments() {
+       public function getNamedArguments() {
                return array();
        }
 
@@ -1469,11 +1477,11 @@ class PPFrame_DOM implements PPFrame {
         *
         * @return bool
         */
-       function isEmpty() {
+       public function isEmpty() {
                return true;
        }
 
-       function getArgument( $name ) {
+       public function getArgument( $name ) {
                return false;
        }
 
@@ -1483,7 +1491,7 @@ class PPFrame_DOM implements PPFrame {
         * @param Title $title
         * @return bool
         */
-       function loopCheck( $title ) {
+       public function loopCheck( $title ) {
                return !isset( $this->loopCheckHash[$title->getPrefixedDBkey()] );
        }
 
@@ -1492,7 +1500,7 @@ class PPFrame_DOM implements PPFrame {
         *
         * @return bool
         */
-       function isTemplate() {
+       public function isTemplate() {
                return false;
        }
 
@@ -1501,7 +1509,7 @@ class PPFrame_DOM implements PPFrame {
         *
         * @return Title
         */
-       function getTitle() {
+       public function getTitle() {
                return $this->title;
        }
 
@@ -1510,7 +1518,7 @@ class PPFrame_DOM implements PPFrame {
         *
         * @param bool $flag
         */
-       function setVolatile( $flag = true ) {
+       public function setVolatile( $flag = true ) {
                $this->volatile = $flag;
        }
 
@@ -1519,7 +1527,7 @@ class PPFrame_DOM implements PPFrame {
         *
         * @return bool
         */
-       function isVolatile() {
+       public function isVolatile() {
                return $this->volatile;
        }
 
@@ -1528,7 +1536,7 @@ class PPFrame_DOM implements PPFrame {
         *
         * @param int $ttl
         */
-       function setTTL( $ttl ) {
+       public function setTTL( $ttl ) {
                if ( $ttl !== null && ( $this->ttl === null || $ttl < $this->ttl ) ) {
                        $this->ttl = $ttl;
                }
@@ -1539,7 +1547,7 @@ class PPFrame_DOM implements PPFrame {
         *
         * @return int|null
         */
-       function getTTL() {
+       public function getTTL() {
                return $this->ttl;
        }
 }
@@ -1547,15 +1555,18 @@ class PPFrame_DOM implements PPFrame {
 /**
  * Expansion frame with template arguments
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPTemplateFrame_DOM extends PPFrame_DOM {
-       var $numberedArgs, $namedArgs;
+       // @codingStandardsIgnoreEnd
+
+       public $numberedArgs, $namedArgs;
 
        /**
         * @var PPFrame_DOM
         */
-       var $parent;
-       var $numberedExpansionCache, $namedExpansionCache;
+       public $parent;
+       public $numberedExpansionCache, $namedExpansionCache;
 
        /**
         * @param Preprocessor $preprocessor
@@ -1564,7 +1575,7 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
         * @param array $namedArgs
         * @param bool|Title $title
         */
-       function __construct( $preprocessor, $parent = false, $numberedArgs = array(),
+       public function __construct( $preprocessor, $parent = false, $numberedArgs = array(),
                $namedArgs = array(), $title = false
        ) {
                parent::__construct( $preprocessor );
@@ -1584,7 +1595,7 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
                $this->numberedExpansionCache = $this->namedExpansionCache = array();
        }
 
-       function __toString() {
+       public function __toString() {
                $s = 'tplframe{';
                $first = true;
                $args = $this->numberedArgs + $this->namedArgs;
@@ -1608,7 +1619,7 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
         * @param int $flags
         * @return string
         */
-       function cachedExpand( $key, $root, $flags = 0 ) {
+       public function cachedExpand( $key, $root, $flags = 0 ) {
                if ( isset( $this->parent->childExpansionCache[$key] ) ) {
                        return $this->parent->childExpansionCache[$key];
                }
@@ -1624,11 +1635,11 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
         *
         * @return bool
         */
-       function isEmpty() {
+       public function isEmpty() {
                return !count( $this->numberedArgs ) && !count( $this->namedArgs );
        }
 
-       function getArguments() {
+       public function getArguments() {
                $arguments = array();
                foreach ( array_merge(
                                array_keys( $this->numberedArgs ),
@@ -1638,7 +1649,7 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
                return $arguments;
        }
 
-       function getNumberedArguments() {
+       public function getNumberedArguments() {
                $arguments = array();
                foreach ( array_keys( $this->numberedArgs ) as $key ) {
                        $arguments[$key] = $this->getArgument( $key );
@@ -1646,7 +1657,7 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
                return $arguments;
        }
 
-       function getNamedArguments() {
+       public function getNamedArguments() {
                $arguments = array();
                foreach ( array_keys( $this->namedArgs ) as $key ) {
                        $arguments[$key] = $this->getArgument( $key );
@@ -1654,7 +1665,7 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
                return $arguments;
        }
 
-       function getNumberedArgument( $index ) {
+       public function getNumberedArgument( $index ) {
                if ( !isset( $this->numberedArgs[$index] ) ) {
                        return false;
                }
@@ -1668,7 +1679,7 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
                return $this->numberedExpansionCache[$index];
        }
 
-       function getNamedArgument( $name ) {
+       public function getNamedArgument( $name ) {
                if ( !isset( $this->namedArgs[$name] ) ) {
                        return false;
                }
@@ -1680,7 +1691,7 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
                return $this->namedExpansionCache[$name];
        }
 
-       function getArgument( $name ) {
+       public function getArgument( $name ) {
                $text = $this->getNumberedArgument( $name );
                if ( $text === false ) {
                        $text = $this->getNamedArgument( $name );
@@ -1693,16 +1704,16 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
         *
         * @return bool
         */
-       function isTemplate() {
+       public function isTemplate() {
                return true;
        }
 
-       function setVolatile( $flag = true ) {
+       public function setVolatile( $flag = true ) {
                parent::setVolatile( $flag );
                $this->parent->setVolatile( $flag );
        }
 
-       function setTTL( $ttl ) {
+       public function setTTL( $ttl ) {
                parent::setTTL( $ttl );
                $this->parent->setTTL( $ttl );
        }
@@ -1711,16 +1722,19 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
 /**
  * Expansion frame with custom arguments
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPCustomFrame_DOM extends PPFrame_DOM {
-       var $args;
+       // @codingStandardsIgnoreEnd
+
+       public $args;
 
-       function __construct( $preprocessor, $args ) {
+       public function __construct( $preprocessor, $args ) {
                parent::__construct( $preprocessor );
                $this->args = $args;
        }
 
-       function __toString() {
+       public function __toString() {
                $s = 'cstmframe{';
                $first = true;
                foreach ( $this->args as $name => $value ) {
@@ -1739,48 +1753,50 @@ class PPCustomFrame_DOM extends PPFrame_DOM {
        /**
         * @return bool
         */
-       function isEmpty() {
+       public function isEmpty() {
                return !count( $this->args );
        }
 
-       function getArgument( $index ) {
+       public function getArgument( $index ) {
                if ( !isset( $this->args[$index] ) ) {
                        return false;
                }
                return $this->args[$index];
        }
 
-       function getArguments() {
+       public function getArguments() {
                return $this->args;
        }
 }
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPNode_DOM implements PPNode {
+       // @codingStandardsIgnoreEnd
 
        /**
         * @var DOMElement
         */
-       var $node;
-       var $xpath;
+       public $node;
+       public $xpath;
 
-       function __construct( $node, $xpath = false ) {
+       public function __construct( $node, $xpath = false ) {
                $this->node = $node;
        }
 
        /**
         * @return DOMXPath
         */
-       function getXPath() {
+       public function getXPath() {
                if ( $this->xpath === null ) {
                        $this->xpath = new DOMXPath( $this->node->ownerDocument );
                }
                return $this->xpath;
        }
 
-       function __toString() {
+       public function __toString() {
                if ( $this->node instanceof DOMNodeList ) {
                        $s = '';
                        foreach ( $this->node as $node ) {
@@ -1795,21 +1811,21 @@ class PPNode_DOM implements PPNode {
        /**
         * @return bool|PPNode_DOM
         */
-       function getChildren() {
+       public function getChildren() {
                return $this->node->childNodes ? new self( $this->node->childNodes ) : false;
        }
 
        /**
         * @return bool|PPNode_DOM
         */
-       function getFirstChild() {
+       public function getFirstChild() {
                return $this->node->firstChild ? new self( $this->node->firstChild ) : false;
        }
 
        /**
         * @return bool|PPNode_DOM
         */
-       function getNextSibling() {
+       public function getNextSibling() {
                return $this->node->nextSibling ? new self( $this->node->nextSibling ) : false;
        }
 
@@ -1818,14 +1834,14 @@ class PPNode_DOM implements PPNode {
         *
         * @return bool|PPNode_DOM
         */
-       function getChildrenOfType( $type ) {
+       public function getChildrenOfType( $type ) {
                return new self( $this->getXPath()->query( $type, $this->node ) );
        }
 
        /**
         * @return int
         */
-       function getLength() {
+       public function getLength() {
                if ( $this->node instanceof DOMNodeList ) {
                        return $this->node->length;
                } else {
@@ -1837,7 +1853,7 @@ class PPNode_DOM implements PPNode {
         * @param int $i
         * @return bool|PPNode_DOM
         */
-       function item( $i ) {
+       public function item( $i ) {
                $item = $this->node->item( $i );
                return $item ? new self( $item ) : false;
        }
@@ -1845,7 +1861,7 @@ class PPNode_DOM implements PPNode {
        /**
         * @return string
         */
-       function getName() {
+       public function getName() {
                if ( $this->node instanceof DOMNodeList ) {
                        return '#nodelist';
                } else {
@@ -1862,7 +1878,7 @@ class PPNode_DOM implements PPNode {
         * @throws MWException
         * @return array
         */
-       function splitArg() {
+       public function splitArg() {
                $xpath = $this->getXPath();
                $names = $xpath->query( 'name', $this->node );
                $values = $xpath->query( 'value', $this->node );
@@ -1884,7 +1900,7 @@ class PPNode_DOM implements PPNode {
         * @throws MWException
         * @return array
         */
-       function splitExt() {
+       public function splitExt() {
                $xpath = $this->getXPath();
                $names = $xpath->query( 'name', $this->node );
                $attrs = $xpath->query( 'attr', $this->node );
@@ -1910,7 +1926,7 @@ class PPNode_DOM implements PPNode {
         * @throws MWException
         * @return array
         */
-       function splitHeading() {
+       public function splitHeading() {
                if ( $this->getName() !== 'h' ) {
                        throw new MWException( 'Invalid h node passed to ' . __METHOD__ );
                }
index 68268f7..6376396 100644 (file)
  *   * attribute nodes are children
  *   * "<h>" nodes that aren't at the top are replaced with <possible-h>
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class Preprocessor_Hash implements Preprocessor {
+       // @codingStandardsIgnoreEnd
+
        /**
         * @var Parser
         */
-       var $parser;
+       public $parser;
 
        const CACHE_VERSION = 1;
 
-       function __construct( $parser ) {
+       public function __construct( $parser ) {
                $this->parser = $parser;
        }
 
        /**
         * @return PPFrame_Hash
         */
-       function newFrame() {
+       public function newFrame() {
                return new PPFrame_Hash( $this );
        }
 
@@ -50,7 +53,7 @@ class Preprocessor_Hash implements Preprocessor {
         * @param array $args
         * @return PPCustomFrame_Hash
         */
-       function newCustomFrame( $args ) {
+       public function newCustomFrame( $args ) {
                return new PPCustomFrame_Hash( $this, $args );
        }
 
@@ -58,7 +61,7 @@ class Preprocessor_Hash implements Preprocessor {
         * @param array $values
         * @return PPNode_Hash_Array
         */
-       function newPartNodeArray( $values ) {
+       public function newPartNodeArray( $values ) {
                $list = array();
 
                foreach ( $values as $k => $val ) {
@@ -108,7 +111,7 @@ class Preprocessor_Hash implements Preprocessor {
         * @throws MWException
         * @return PPNode_Hash_Tree
         */
-       function preprocessToObj( $text, $flags = 0 ) {
+       public function preprocessToObj( $text, $flags = 0 ) {
                wfProfileIn( __METHOD__ );
 
                // Check cache.
@@ -758,9 +761,12 @@ class Preprocessor_Hash implements Preprocessor {
 /**
  * Stack class to help Preprocessor::preprocessToObj()
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPDStack_Hash extends PPDStack {
-       function __construct() {
+       // @codingStandardsIgnoreEnd
+
+       public function __construct() {
                $this->elementClass = 'PPDStackElement_Hash';
                parent::__construct();
                $this->rootAccum = new PPDAccum_Hash;
@@ -769,9 +775,12 @@ class PPDStack_Hash extends PPDStack {
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPDStackElement_Hash extends PPDStackElement {
-       function __construct( $data = array() ) {
+       // @codingStandardsIgnoreENd
+
+       public function __construct( $data = array() ) {
                $this->partClass = 'PPDPart_Hash';
                parent::__construct( $data );
        }
@@ -782,7 +791,7 @@ class PPDStackElement_Hash extends PPDStackElement {
         * @param int|bool $openingCount
         * @return PPDAccum_Hash
         */
-       function breakSyntax( $openingCount = false ) {
+       public function breakSyntax( $openingCount = false ) {
                if ( $this->open == "\n" ) {
                        $accum = $this->parts[0]->out;
                } else {
@@ -807,9 +816,12 @@ class PPDStackElement_Hash extends PPDStackElement {
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPDPart_Hash extends PPDPart {
-       function __construct( $out = '' ) {
+       // @codingStandardsIgnoreEnd
+
+       public function __construct( $out = '' ) {
                $accum = new PPDAccum_Hash;
                if ( $out !== '' ) {
                        $accum->addLiteral( $out );
@@ -820,11 +832,14 @@ class PPDPart_Hash extends PPDPart {
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPDAccum_Hash {
-       var $firstNode, $lastNode;
+       // @codingStandardsIgnoreEnd
+
+       public $firstNode, $lastNode;
 
-       function __construct() {
+       public function __construct() {
                $this->firstNode = $this->lastNode = false;
        }
 
@@ -832,7 +847,7 @@ class PPDAccum_Hash {
         * Append a string literal
         * @param string $s
         */
-       function addLiteral( $s ) {
+       public function addLiteral( $s ) {
                if ( $this->lastNode === false ) {
                        $this->firstNode = $this->lastNode = new PPNode_Hash_Text( $s );
                } elseif ( $this->lastNode instanceof PPNode_Hash_Text ) {
@@ -847,7 +862,7 @@ class PPDAccum_Hash {
         * Append a PPNode
         * @param PPNode $node
         */
-       function addNode( PPNode $node ) {
+       public function addNode( PPNode $node ) {
                if ( $this->lastNode === false ) {
                        $this->firstNode = $this->lastNode = $node;
                } else {
@@ -861,7 +876,7 @@ class PPDAccum_Hash {
         * @param string $name
         * @param string $value
         */
-       function addNodeWithText( $name, $value ) {
+       public function addNodeWithText( $name, $value ) {
                $node = PPNode_Hash_Tree::newWithText( $name, $value );
                $this->addNode( $node );
        }
@@ -872,7 +887,7 @@ class PPDAccum_Hash {
         * subsequently be modified, especially nextSibling.
         * @param PPDAccum_Hash $accum
         */
-       function addAccum( $accum ) {
+       public function addAccum( $accum ) {
                if ( $accum->lastNode === false ) {
                        // nothing to add
                } elseif ( $this->lastNode === false ) {
@@ -888,36 +903,38 @@ class PPDAccum_Hash {
 /**
  * An expansion frame, used as a context to expand the result of preprocessToObj()
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPFrame_Hash implements PPFrame {
+       // @codingStandardsIgnoreEnd
 
        /**
         * @var Parser
         */
-       var $parser;
+       public $parser;
 
        /**
         * @var Preprocessor
         */
-       var $preprocessor;
+       public $preprocessor;
 
        /**
         * @var Title
         */
-       var $title;
-       var $titleCache;
+       public $title;
+       public $titleCache;
 
        /**
         * Hashtable listing templates which are disallowed for expansion in this frame,
         * having been encountered previously in parent frames.
         */
-       var $loopCheckHash;
+       public $loopCheckHash;
 
        /**
         * Recursion depth of this frame, top = 0
         * Note that this is NOT the same as expansion depth in expand()
         */
-       var $depth;
+       public $depth;
 
        private $volatile = false;
        private $ttl = null;
@@ -931,7 +948,7 @@ class PPFrame_Hash implements PPFrame {
         * Construct a new preprocessor frame.
         * @param Preprocessor $preprocessor The parent preprocessor
         */
-       function __construct( $preprocessor ) {
+       public function __construct( $preprocessor ) {
                $this->preprocessor = $preprocessor;
                $this->parser = $preprocessor->parser;
                $this->title = $this->parser->mTitle;
@@ -951,7 +968,7 @@ class PPFrame_Hash implements PPFrame {
         * @throws MWException
         * @return PPTemplateFrame_Hash
         */
-       function newChild( $args = false, $title = false, $indexOffset = 0 ) {
+       public function newChild( $args = false, $title = false, $indexOffset = 0 ) {
                $namedArgs = array();
                $numberedArgs = array();
                if ( $title === false ) {
@@ -988,7 +1005,7 @@ class PPFrame_Hash implements PPFrame {
         * @param int $flags
         * @return string
         */
-       function cachedExpand( $key, $root, $flags = 0 ) {
+       public function cachedExpand( $key, $root, $flags = 0 ) {
                // we don't have a parent, so we don't have a cache
                return $this->expand( $root, $flags );
        }
@@ -999,7 +1016,7 @@ class PPFrame_Hash implements PPFrame {
         * @param int $flags
         * @return string
         */
-       function expand( $root, $flags = 0 ) {
+       public function expand( $root, $flags = 0 ) {
                static $expansionDepth = 0;
                if ( is_string( $root ) ) {
                        return $root;
@@ -1207,9 +1224,10 @@ class PPFrame_Hash implements PPFrame {
        /**
         * @param string $sep
         * @param int $flags
+        * @param string|PPNode $args,...
         * @return string
         */
-       function implodeWithFlags( $sep, $flags /*, ... */ ) {
+       public function implodeWithFlags( $sep, $flags /*, ... */ ) {
                $args = array_slice( func_get_args(), 2 );
 
                $first = true;
@@ -1237,9 +1255,10 @@ class PPFrame_Hash implements PPFrame {
         * Implode with no flags specified
         * This previously called implodeWithFlags but has now been inlined to reduce stack depth
         * @param string $sep
+        * @param string|PPNode $args,...
         * @return string
         */
-       function implode( $sep /*, ... */ ) {
+       public function implode( $sep /*, ... */ ) {
                $args = array_slice( func_get_args(), 1 );
 
                $first = true;
@@ -1268,9 +1287,10 @@ class PPFrame_Hash implements PPFrame {
         * with implode()
         *
         * @param string $sep
+        * @param string|PPNode $args,...
         * @return PPNode_Hash_Array
         */
-       function virtualImplode( $sep /*, ... */ ) {
+       public function virtualImplode( $sep /*, ... */ ) {
                $args = array_slice( func_get_args(), 1 );
                $out = array();
                $first = true;
@@ -1300,9 +1320,10 @@ class PPFrame_Hash implements PPFrame {
         * @param string $start
         * @param string $sep
         * @param string $end
+        * @param string|PPNode $args,...
         * @return PPNode_Hash_Array
         */
-       function virtualBracketedImplode( $start, $sep, $end /*, ... */ ) {
+       public function virtualBracketedImplode( $start, $sep, $end /*, ... */ ) {
                $args = array_slice( func_get_args(), 3 );
                $out = array( $start );
                $first = true;
@@ -1327,7 +1348,7 @@ class PPFrame_Hash implements PPFrame {
                return new PPNode_Hash_Array( $out );
        }
 
-       function __toString() {
+       public function __toString() {
                return 'frame{}';
        }
 
@@ -1335,7 +1356,7 @@ class PPFrame_Hash implements PPFrame {
         * @param bool $level
         * @return array|bool|string
         */
-       function getPDBK( $level = false ) {
+       public function getPDBK( $level = false ) {
                if ( $level === false ) {
                        return $this->title->getPrefixedDBkey();
                } else {
@@ -1346,21 +1367,21 @@ class PPFrame_Hash implements PPFrame {
        /**
         * @return array
         */
-       function getArguments() {
+       public function getArguments() {
                return array();
        }
 
        /**
         * @return array
         */
-       function getNumberedArguments() {
+       public function getNumberedArguments() {
                return array();
        }
 
        /**
         * @return array
         */
-       function getNamedArguments() {
+       public function getNamedArguments() {
                return array();
        }
 
@@ -1369,7 +1390,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @return bool
         */
-       function isEmpty() {
+       public function isEmpty() {
                return true;
        }
 
@@ -1377,7 +1398,7 @@ class PPFrame_Hash implements PPFrame {
         * @param string $name
         * @return bool
         */
-       function getArgument( $name ) {
+       public function getArgument( $name ) {
                return false;
        }
 
@@ -1388,7 +1409,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @return bool
         */
-       function loopCheck( $title ) {
+       public function loopCheck( $title ) {
                return !isset( $this->loopCheckHash[$title->getPrefixedDBkey()] );
        }
 
@@ -1397,7 +1418,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @return bool
         */
-       function isTemplate() {
+       public function isTemplate() {
                return false;
        }
 
@@ -1406,7 +1427,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @return Title
         */
-       function getTitle() {
+       public function getTitle() {
                return $this->title;
        }
 
@@ -1415,7 +1436,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @param bool $flag
         */
-       function setVolatile( $flag = true ) {
+       public function setVolatile( $flag = true ) {
                $this->volatile = $flag;
        }
 
@@ -1424,7 +1445,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @return bool
         */
-       function isVolatile() {
+       public function isVolatile() {
                return $this->volatile;
        }
 
@@ -1433,7 +1454,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @param int $ttl
         */
-       function setTTL( $ttl ) {
+       public function setTTL( $ttl ) {
                if ( $ttl !== null && ( $this->ttl === null || $ttl < $this->ttl ) ) {
                        $this->ttl = $ttl;
                }
@@ -1444,7 +1465,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @return int|null
         */
-       function getTTL() {
+       public function getTTL() {
                return $this->ttl;
        }
 }
@@ -1452,10 +1473,13 @@ class PPFrame_Hash implements PPFrame {
 /**
  * Expansion frame with template arguments
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPTemplateFrame_Hash extends PPFrame_Hash {
-       var $numberedArgs, $namedArgs, $parent;
-       var $numberedExpansionCache, $namedExpansionCache;
+       // @codingStandardsIgnoreEnd
+
+       public $numberedArgs, $namedArgs, $parent;
+       public $numberedExpansionCache, $namedExpansionCache;
 
        /**
         * @param Preprocessor $preprocessor
@@ -1464,7 +1488,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
         * @param array $namedArgs
         * @param bool|Title $title
         */
-       function __construct( $preprocessor, $parent = false, $numberedArgs = array(),
+       public function __construct( $preprocessor, $parent = false, $numberedArgs = array(),
                $namedArgs = array(), $title = false
        ) {
                parent::__construct( $preprocessor );
@@ -1484,7 +1508,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
                $this->numberedExpansionCache = $this->namedExpansionCache = array();
        }
 
-       function __toString() {
+       public function __toString() {
                $s = 'tplframe{';
                $first = true;
                $args = $this->numberedArgs + $this->namedArgs;
@@ -1508,7 +1532,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
         * @param int $flags
         * @return string
         */
-       function cachedExpand( $key, $root, $flags = 0 ) {
+       public function cachedExpand( $key, $root, $flags = 0 ) {
                if ( isset( $this->parent->childExpansionCache[$key] ) ) {
                        return $this->parent->childExpansionCache[$key];
                }
@@ -1524,14 +1548,14 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
         *
         * @return bool
         */
-       function isEmpty() {
+       public function isEmpty() {
                return !count( $this->numberedArgs ) && !count( $this->namedArgs );
        }
 
        /**
         * @return array
         */
-       function getArguments() {
+       public function getArguments() {
                $arguments = array();
                foreach ( array_merge(
                                array_keys( $this->numberedArgs ),
@@ -1544,7 +1568,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
        /**
         * @return array
         */
-       function getNumberedArguments() {
+       public function getNumberedArguments() {
                $arguments = array();
                foreach ( array_keys( $this->numberedArgs ) as $key ) {
                        $arguments[$key] = $this->getArgument( $key );
@@ -1555,7 +1579,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
        /**
         * @return array
         */
-       function getNamedArguments() {
+       public function getNamedArguments() {
                $arguments = array();
                foreach ( array_keys( $this->namedArgs ) as $key ) {
                        $arguments[$key] = $this->getArgument( $key );
@@ -1567,7 +1591,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
         * @param int $index
         * @return array|bool
         */
-       function getNumberedArgument( $index ) {
+       public function getNumberedArgument( $index ) {
                if ( !isset( $this->numberedArgs[$index] ) ) {
                        return false;
                }
@@ -1585,7 +1609,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
         * @param string $name
         * @return bool
         */
-       function getNamedArgument( $name ) {
+       public function getNamedArgument( $name ) {
                if ( !isset( $this->namedArgs[$name] ) ) {
                        return false;
                }
@@ -1601,7 +1625,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
         * @param string $name
         * @return array|bool
         */
-       function getArgument( $name ) {
+       public function getArgument( $name ) {
                $text = $this->getNumberedArgument( $name );
                if ( $text === false ) {
                        $text = $this->getNamedArgument( $name );
@@ -1614,16 +1638,16 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
         *
         * @return bool
         */
-       function isTemplate() {
+       public function isTemplate() {
                return true;
        }
 
-       function setVolatile( $flag = true ) {
+       public function setVolatile( $flag = true ) {
                parent::setVolatile( $flag );
                $this->parent->setVolatile( $flag );
        }
 
-       function setTTL( $ttl ) {
+       public function setTTL( $ttl ) {
                parent::setTTL( $ttl );
                $this->parent->setTTL( $ttl );
        }
@@ -1632,16 +1656,19 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
 /**
  * Expansion frame with custom arguments
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPCustomFrame_Hash extends PPFrame_Hash {
-       var $args;
+       // @codingStandardsIgnoreEnd
 
-       function __construct( $preprocessor, $args ) {
+       public $args;
+
+       public function __construct( $preprocessor, $args ) {
                parent::__construct( $preprocessor );
                $this->args = $args;
        }
 
-       function __toString() {
+       public function __toString() {
                $s = 'cstmframe{';
                $first = true;
                foreach ( $this->args as $name => $value ) {
@@ -1660,7 +1687,7 @@ class PPCustomFrame_Hash extends PPFrame_Hash {
        /**
         * @return bool
         */
-       function isEmpty() {
+       public function isEmpty() {
                return !count( $this->args );
        }
 
@@ -1668,30 +1695,33 @@ class PPCustomFrame_Hash extends PPFrame_Hash {
         * @param int $index
         * @return bool
         */
-       function getArgument( $index ) {
+       public function getArgument( $index ) {
                if ( !isset( $this->args[$index] ) ) {
                        return false;
                }
                return $this->args[$index];
        }
 
-       function getArguments() {
+       public function getArguments() {
                return $this->args;
        }
 }
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPNode_Hash_Tree implements PPNode {
-       var $name, $firstChild, $lastChild, $nextSibling;
+       // @codingStandardsIgnoreEnd
+
+       public $name, $firstChild, $lastChild, $nextSibling;
 
-       function __construct( $name ) {
+       public function __construct( $name ) {
                $this->name = $name;
                $this->firstChild = $this->lastChild = $this->nextSibling = false;
        }
 
-       function __toString() {
+       public function __toString() {
                $inner = '';
                $attribs = '';
                for ( $node = $this->firstChild; $node; $node = $node->nextSibling ) {
@@ -1713,13 +1743,13 @@ class PPNode_Hash_Tree implements PPNode {
         * @param string $text
         * @return PPNode_Hash_Tree
         */
-       static function newWithText( $name, $text ) {
+       public static function newWithText( $name, $text ) {
                $obj = new self( $name );
                $obj->addChild( new PPNode_Hash_Text( $text ) );
                return $obj;
        }
 
-       function addChild( $node ) {
+       public function addChild( $node ) {
                if ( $this->lastChild === false ) {
                        $this->firstChild = $this->lastChild = $node;
                } else {
@@ -1731,7 +1761,7 @@ class PPNode_Hash_Tree implements PPNode {
        /**
         * @return PPNode_Hash_Array
         */
-       function getChildren() {
+       public function getChildren() {
                $children = array();
                for ( $child = $this->firstChild; $child; $child = $child->nextSibling ) {
                        $children[] = $child;
@@ -1739,15 +1769,15 @@ class PPNode_Hash_Tree implements PPNode {
                return new PPNode_Hash_Array( $children );
        }
 
-       function getFirstChild() {
+       public function getFirstChild() {
                return $this->firstChild;
        }
 
-       function getNextSibling() {
+       public function getNextSibling() {
                return $this->nextSibling;
        }
 
-       function getChildrenOfType( $name ) {
+       public function getChildrenOfType( $name ) {
                $children = array();
                for ( $child = $this->firstChild; $child; $child = $child->nextSibling ) {
                        if ( isset( $child->name ) && $child->name === $name ) {
@@ -1760,7 +1790,7 @@ class PPNode_Hash_Tree implements PPNode {
        /**
         * @return bool
         */
-       function getLength() {
+       public function getLength() {
                return false;
        }
 
@@ -1768,14 +1798,14 @@ class PPNode_Hash_Tree implements PPNode {
         * @param int $i
         * @return bool
         */
-       function item( $i ) {
+       public function item( $i ) {
                return false;
        }
 
        /**
         * @return string
         */
-       function getName() {
+       public function getName() {
                return $this->name;
        }
 
@@ -1788,7 +1818,7 @@ class PPNode_Hash_Tree implements PPNode {
         * @throws MWException
         * @return array
         */
-       function splitArg() {
+       public function splitArg() {
                $bits = array();
                for ( $child = $this->firstChild; $child; $child = $child->nextSibling ) {
                        if ( !isset( $child->name ) ) {
@@ -1822,7 +1852,7 @@ class PPNode_Hash_Tree implements PPNode {
         * @throws MWException
         * @return array
         */
-       function splitExt() {
+       public function splitExt() {
                $bits = array();
                for ( $child = $this->firstChild; $child; $child = $child->nextSibling ) {
                        if ( !isset( $child->name ) ) {
@@ -1850,7 +1880,7 @@ class PPNode_Hash_Tree implements PPNode {
         * @throws MWException
         * @return array
         */
-       function splitHeading() {
+       public function splitHeading() {
                if ( $this->name !== 'h' ) {
                        throw new MWException( 'Invalid h node passed to ' . __METHOD__ );
                }
@@ -1877,7 +1907,7 @@ class PPNode_Hash_Tree implements PPNode {
         * @throws MWException
         * @return array
         */
-       function splitTemplate() {
+       public function splitTemplate() {
                $parts = array();
                $bits = array( 'lineStart' => '' );
                for ( $child = $this->firstChild; $child; $child = $child->nextSibling ) {
@@ -1904,169 +1934,178 @@ class PPNode_Hash_Tree implements PPNode {
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPNode_Hash_Text implements PPNode {
-       var $value, $nextSibling;
+       // @codingStandardsIgnoreEnd
+
+       public $value, $nextSibling;
 
-       function __construct( $value ) {
+       public function __construct( $value ) {
                if ( is_object( $value ) ) {
                        throw new MWException( __CLASS__ . ' given object instead of string' );
                }
                $this->value = $value;
        }
 
-       function __toString() {
+       public function __toString() {
                return htmlspecialchars( $this->value );
        }
 
-       function getNextSibling() {
+       public function getNextSibling() {
                return $this->nextSibling;
        }
 
-       function getChildren() {
+       public function getChildren() {
                return false;
        }
 
-       function getFirstChild() {
+       public function getFirstChild() {
                return false;
        }
 
-       function getChildrenOfType( $name ) {
+       public function getChildrenOfType( $name ) {
                return false;
        }
 
-       function getLength() {
+       public function getLength() {
                return false;
        }
 
-       function item( $i ) {
+       public function item( $i ) {
                return false;
        }
 
-       function getName() {
+       public function getName() {
                return '#text';
        }
 
-       function splitArg() {
+       public function splitArg() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 
-       function splitExt() {
+       public function splitExt() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 
-       function splitHeading() {
+       public function splitHeading() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 }
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPNode_Hash_Array implements PPNode {
-       var $value, $nextSibling;
+       // @codingStandardsIgnoreEnd
 
-       function __construct( $value ) {
+       public $value, $nextSibling;
+
+       public function __construct( $value ) {
                $this->value = $value;
        }
 
-       function __toString() {
+       public function __toString() {
                return var_export( $this, true );
        }
 
-       function getLength() {
+       public function getLength() {
                return count( $this->value );
        }
 
-       function item( $i ) {
+       public function item( $i ) {
                return $this->value[$i];
        }
 
-       function getName() {
+       public function getName() {
                return '#nodelist';
        }
 
-       function getNextSibling() {
+       public function getNextSibling() {
                return $this->nextSibling;
        }
 
-       function getChildren() {
+       public function getChildren() {
                return false;
        }
 
-       function getFirstChild() {
+       public function getFirstChild() {
                return false;
        }
 
-       function getChildrenOfType( $name ) {
+       public function getChildrenOfType( $name ) {
                return false;
        }
 
-       function splitArg() {
+       public function splitArg() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 
-       function splitExt() {
+       public function splitExt() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 
-       function splitHeading() {
+       public function splitHeading() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 }
 
 /**
  * @ingroup Parser
+ * @codingStandardsIgnoreStart
  */
 class PPNode_Hash_Attr implements PPNode {
-       var $name, $value, $nextSibling;
+       // @codingStandardsIgnoreEnd
+
+       public $name, $value, $nextSibling;
 
-       function __construct( $name, $value ) {
+       public function __construct( $name, $value ) {
                $this->name = $name;
                $this->value = $value;
        }
 
-       function __toString() {
+       public function __toString() {
                return "<@{$this->name}>" . htmlspecialchars( $this->value ) . "</@{$this->name}>";
        }
 
-       function getName() {
+       public function getName() {
                return $this->name;
        }
 
-       function getNextSibling() {
+       public function getNextSibling() {
                return $this->nextSibling;
        }
 
-       function getChildren() {
+       public function getChildren() {
                return false;
        }
 
-       function getFirstChild() {
+       public function getFirstChild() {
                return false;
        }
 
-       function getChildrenOfType( $name ) {
+       public function getChildrenOfType( $name ) {
                return false;
        }
 
-       function getLength() {
+       public function getLength() {
                return false;
        }
 
-       function item( $i ) {
+       public function item( $i ) {
                return false;
        }
 
-       function splitArg() {
+       public function splitArg() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 
-       function splitExt() {
+       public function splitExt() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 
-       function splitHeading() {
+       public function splitHeading() {
                throw new MWException( __METHOD__ . ': not supported' );
        }
 }
index d4f4559..5d1743e 100644 (file)
@@ -39,7 +39,7 @@ class StripState {
        /**
         * @param string $prefix
         */
-       function __construct( $prefix ) {
+       public function __construct( $prefix ) {
                $this->prefix = $prefix;
                $this->data = array(
                        'nowiki' => array(),
@@ -54,7 +54,7 @@ class StripState {
         * @param string $marker
         * @param string $value
         */
-       function addNoWiki( $marker, $value ) {
+       public function addNoWiki( $marker, $value ) {
                $this->addItem( 'nowiki', $marker, $value );
        }
 
@@ -62,7 +62,7 @@ class StripState {
         * @param string $marker
         * @param string $value
         */
-       function addGeneral( $marker, $value ) {
+       public function addGeneral( $marker, $value ) {
                $this->addItem( 'general', $marker, $value );
        }
 
@@ -84,7 +84,7 @@ class StripState {
         * @param string $text
         * @return mixed
         */
-       function unstripGeneral( $text ) {
+       public function unstripGeneral( $text ) {
                return $this->unstripType( 'general', $text );
        }
 
@@ -92,7 +92,7 @@ class StripState {
         * @param string $text
         * @return mixed
         */
-       function unstripNoWiki( $text ) {
+       public function unstripNoWiki( $text ) {
                return $this->unstripType( 'nowiki', $text );
        }
 
@@ -100,7 +100,7 @@ class StripState {
         * @param string $text
         * @return mixed
         */
-       function unstripBoth( $text ) {
+       public function unstripBoth( $text ) {
                $text = $this->unstripType( 'general', $text );
                $text = $this->unstripType( 'nowiki', $text );
                return $text;
@@ -163,7 +163,7 @@ class StripState {
         *
         * @return StripState
         */
-       function getSubState( $text ) {
+       public function getSubState( $text ) {
                $subState = new StripState( $this->prefix );
                $pos = 0;
                while ( true ) {
@@ -199,7 +199,7 @@ class StripState {
         * @param array $texts
         * @return array
         */
-       function merge( $otherState, $texts ) {
+       public function merge( $otherState, $texts ) {
                $mergePrefix = Parser::getRandomString();
 
                foreach ( $otherState->data as $type => $items ) {
@@ -229,7 +229,7 @@ class StripState {
         * @param string $text Input string
         * @return string
         */
-       function killMarkers( $text ) {
+       public function killMarkers( $text ) {
                return preg_replace( $this->regex, '', $text );
        }
 }
index e49afed..c0be7a1 100644 (file)
@@ -65,7 +65,7 @@ abstract class PoolCounterWork {
        /**
         * Do something with the error, like showing it to the user.
         *
-        * @param $status
+        * @param Status $status
         *
         * @return bool
         */
index 4cdb0ff..5e7e391 100644 (file)
@@ -45,9 +45,9 @@ class PoolWorkArticleView extends PoolCounterWork {
 
        /**
         * @param Page $page
+        * @param ParserOptions $parserOptions ParserOptions to use for the parse
         * @param int $revid ID of the revision being parsed.
         * @param bool $useParserCache Whether to use the parser cache.
-        * @param ParserOptions $parserOptions ParserOptions to use for the parse
         *   operation.
         * @param Content|string $content Content to parse or null to load it; may
         *   also be given as a wikitext string, for BC.
index 22d5cd4..627b4de 100644 (file)
@@ -58,7 +58,8 @@ class ProfilerSimpleUDP extends ProfilerStandard {
                                continue;
                        }
                        $pfline = sprintf( $wgUDPProfilerFormatString, $this->getProfileID(), $pfdata['count'],
-                               $pfdata['cpu'], $pfdata['cpu_sq'], $pfdata['real'], $pfdata['real_sq'], $entry );
+                               $pfdata['cpu'], $pfdata['cpu_sq'], $pfdata['real'], $pfdata['real_sq'], $entry,
+                               $pfdata['memory'] );
                        $length = strlen( $pfline );
                        /* printf("<!-- $pfline -->"); */
                        if ( $length + $plength > 1400 ) {
index 7fd86eb..cc13416 100644 (file)
@@ -339,6 +339,7 @@ class ProfilerStandard extends Profiler {
 
        /**
         * Callback to get a formatted line for the call tree
+        * @param array $entry
         * @return string
         */
        protected function getCallTreeLine( $entry ) {
@@ -514,6 +515,7 @@ class ProfilerStandard extends Profiler {
 
        /**
         * Dummy calls to wfProfileIn/wfProfileOut to calculate its overhead
+        * @param int $profileCount
         */
        protected static function calculateOverhead( $profileCount ) {
                wfProfileIn( '-overhead-total' );
index 768dd7f..0b0cd86 100644 (file)
@@ -28,7 +28,7 @@ interface RCFeedEngine {
        /**
         * Sends some text to the specified live feed.
         *
-        * @see RecentChange::cleanupForIRC
+        * @see IRCColourfulRCFeedFormatter::cleanupForIRC
         * @param array $feed The feed, as configured in an associative array
         * @param string $line The text to send
         * @return bool Success
index 354264c..198420c 100644 (file)
@@ -216,6 +216,7 @@ class ResourceLoader {
 
        /**
         * Register core modules and runs registration hooks.
+        * @param Config|null $config
         */
        public function __construct( Config $config = null ) {
                global $IP;
@@ -1005,6 +1006,13 @@ class ResourceLoader {
                        if ( count( $states ) ) {
                                $out .= self::makeLoaderStateScript( $states );
                        }
+
+                       // In only=script requests for modules that are not raw (e.g. not the startup module)
+                       // ensure the execution is conditional to avoid situations where browsers with an
+                       // unsupported environment do unconditionally execute a module's scripts. Otherwise users
+                       // will get things like "ReferenceError: mw is undefined" or "jQuery is undefined" from
+                       // legacy scripts loaded with only=scripts (such as the 'site' module).
+                       $out = self::makeLoaderConditionalScript( $out );
                } else {
                        if ( count( $states ) ) {
                                $exceptions .= self::makeComment(
index f646ae9..8a223b0 100644 (file)
@@ -479,7 +479,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                }
                $contents = file_get_contents( $localPath );
                if ( $this->getConfig()->get( 'ResourceLoaderValidateStaticJS' ) ) {
-                       $contents = $this->validateScriptFile( $fileName, $contents );
+                       $contents = $this->validateScriptFile( $localPath, $contents );
                }
                return $contents;
        }
@@ -569,6 +569,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Get the definition summary for this module.
         *
+        * @param ResourceLoaderContext $context
         * @return array
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
index ba37f42..45eb70f 100644 (file)
@@ -486,6 +486,7 @@ abstract class ResourceLoaderModule {
         *
         * @since 1.23
         *
+        * @param ResourceLoaderContext $context
         * @return int UNIX timestamp or 0 if no definition summary was provided
         *  by getDefinitionSummary()
         */
@@ -553,6 +554,7 @@ abstract class ResourceLoaderModule {
         *
         * @since 1.23
         *
+        * @param ResourceLoaderContext $context
         * @return array|null
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
index 7cfc81d..78fe45c 100644 (file)
@@ -122,7 +122,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
         * @param string $moduleName
         * @return array
         */
-       protected static function getImplicitDependencies( Array $registryData, $moduleName ) {
+       protected static function getImplicitDependencies( array $registryData, $moduleName ) {
                static $dependencyCache = array();
 
                // The list of implicit dependencies won't be altered, so we can
@@ -168,7 +168,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
         *  - string 'source'
         *  - string|false 'loader'
         */
-       public static function compileUnresolvedDependencies( Array &$registryData ) {
+       public static function compileUnresolvedDependencies( array &$registryData ) {
                foreach ( $registryData as $name => &$data ) {
                        if ( $data['loader'] !== false ) {
                                continue;
@@ -325,6 +325,15 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                return true;
        }
 
+       /**
+        * Base modules required for the the base environment of ResourceLoader
+        *
+        * @return array
+        */
+       public static function getStartupModules() {
+               return array( 'jquery', 'mediawiki' );
+       }
+
        /**
         * Get the load URL of the startup modules.
         *
@@ -335,8 +344,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
         * @return string
         */
        public static function getStartupModulesUrl( ResourceLoaderContext $context ) {
-               // The core modules:
-               $moduleNames = array( 'jquery', 'mediawiki' );
+               $moduleNames = self::getStartupModules();
 
                // Get the latest version
                $loader = $context->getResourceLoader();
index d9ed91d..0472f1a 100644 (file)
@@ -184,6 +184,7 @@ abstract class ResourceLoaderWikiModule extends ResourceLoaderModule {
        /**
         * Get the definition summary for this module.
         *
+        * @param ResourceLoaderContext $context
         * @return array
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
index d9472e7..a6517fe 100644 (file)
@@ -24,7 +24,7 @@
  */
 class RevDelFileItem extends RevDelItem {
        /** @var File */
-       var $file;
+       public $file;
 
        public function __construct( $list, $row ) {
                parent::__construct( $list, $row );
index 8714a5e..57e15d8 100644 (file)
  */
 class RevDelFileList extends RevDelList {
        /** @var array */
-       var $storeBatch;
+       public $storeBatch;
 
        /** @var array */
-       var $deleteBatch;
+       public $deleteBatch;
 
        /** @var array */
-       var $cleanupBatch;
+       public $cleanupBatch;
 
        public function getType() {
                return 'oldimage';
index 81ca3d6..300ce6a 100644 (file)
@@ -24,7 +24,7 @@
  */
 class RevDelRevisionItem extends RevDelItem {
        /** @var Revision */
-       var $revision;
+       public $revision;
 
        public function __construct( $list, $row ) {
                parent::__construct( $list, $row );
index 6c47d4a..2545072 100644 (file)
@@ -30,7 +30,7 @@
  */
 class RevDelRevisionList extends RevDelList {
        /** @var int */
-       var $currentRevId;
+       public $currentRevId;
 
        public function getType() {
                return 'revision';
index 086db3a..e92a533 100644 (file)
@@ -322,6 +322,7 @@ abstract class RevDelItem extends RevisionItemBase {
         * Returns true if the item is "current", and the operation to set the given
         * bits can't be executed for that reason
         * STUB
+        * @param int $newBits
         * @return bool
         */
        public function isHideCurrentOp( $newBits ) {
@@ -341,6 +342,7 @@ abstract class RevDelItem extends RevisionItemBase {
         * If the update fails because it did not match, the function should return
         * false. This prevents concurrency problems.
         *
+        * @param int $newBits
         * @return bool Success
         */
        abstract public function setBits( $newBits );
index dc52969..d4f8167 100644 (file)
@@ -189,7 +189,7 @@ class RevisionDeleter {
         * Suggest a target for the revision deletion
         * @since 1.22
         * @param string $typeName
-        * @param Title|null $title User-supplied target
+        * @param Title|null $target User-supplied target
         * @param array $ids
         * @return Title|null
         */
index 56bb0ac..0eb87e4 100644 (file)
@@ -120,6 +120,8 @@ class SearchEngine {
         * Transform search term in cases when parts of the query came as different
         * GET params (when supported), e.g. for prefix queries:
         * search=test&prefix=Main_Page/Archive -> test prefix:Main Page/Archive
+        * @param string $term
+        * @return string
         */
        function transformSearchTerm( $term ) {
                return $term;
@@ -152,6 +154,7 @@ class SearchEngine {
 
        /**
         * Really find the title match.
+        * @param string $searchterm
         * @return null|Title
         */
        private static function getNearMatchInternal( $searchterm ) {
index 57cdaf4..7e5f685 100644 (file)
@@ -447,6 +447,7 @@ class SearchHighlighter {
        /**
         * Basic wikitext removal
         * @protected
+        * @param string $text
         * @return mixed
         */
        function removeWiki( $text ) {
@@ -553,4 +554,21 @@ class SearchHighlighter {
 
                return $extract;
        }
+
+       /**
+        * Returns the first few lines of the text
+        *
+        * @param string $text
+        * @param int $contextlines max number of returned lines
+        * @param int $contextchars average number of characters per line
+        * @return string
+        */
+       public function highlightNone( $text, $contextlines, $contextchars) {
+               $match = array();
+               $text = ltrim( $text ) . "\n"; // make sure the preg_match may find the last line
+               $text = str_replace( "\n\n", "\n", $text); // remove empty lines
+               preg_match( "/^(.*\n){0,$contextlines}/", $text , $match);
+               $text = htmlspecialchars( substr( trim( $match[0] ), 0, $contextlines * $contextchars ) ); // trim and limit to max number of chars
+               return str_replace( "\n", '<br>', $text );
+       }
 }
index 0d1663f..de701f7 100644 (file)
@@ -85,6 +85,8 @@ class SearchMssql extends SearchDatabase {
         * Does not do anything for generic search engine
         * subclasses may define this though
         *
+        * @param string $filteredTerm
+        * @param bool $fulltext
         * @return string
         */
        function queryRanking( $filteredTerm, $fulltext ) {
@@ -134,6 +136,8 @@ class SearchMssql extends SearchDatabase {
        }
 
        /** @todo document
+        * @param string $filteredText
+        * @param bool $fulltext
         * @return string
         */
        function parseQuery( $filteredText, $fulltext ) {
index 581d8bc..78eba2d 100644 (file)
@@ -303,6 +303,8 @@ class SearchMySQL extends SearchDatabase {
 
        /**
         * @since 1.18 (changed)
+        * @param string $filteredTerm
+        * @param bool $fulltext
         * @return array
         */
        function getCountQuery( $filteredTerm, $fulltext ) {
@@ -374,6 +376,7 @@ class SearchMySQL extends SearchDatabase {
        /**
         * Converts some characters for MySQL's indexing to grok it correctly,
         * and pads short words to overcome limitations.
+        * @param string $string
         * @return mixed|string
         */
        function normalizeText( $string ) {
@@ -422,6 +425,7 @@ class SearchMySQL extends SearchDatabase {
         * Armor a case-folded UTF-8 string to get through MySQL's
         * fulltext search without being mucked up by funny charset
         * settings or anything else of the sort.
+        * @param array $matches
         * @return string
         */
        protected function stripForSearchCallback( $matches ) {
index 4cfcec3..348da79 100644 (file)
@@ -125,6 +125,8 @@ class SearchOracle extends SearchDatabase {
         * Does not do anything for generic search engine
         * subclasses may define this though
         *
+        * @param string $filteredTerm
+        * @param bool $fulltext
         * @return string
         */
        function queryRanking( $filteredTerm, $fulltext ) {
@@ -172,6 +174,8 @@ class SearchOracle extends SearchDatabase {
        /**
         * Parse a user input search string, and return an SQL fragment to be used
         * as part of a WHERE clause
+        * @param string $filteredText
+        * @param bool $fulltext
         * @return string
         */
        function parseQuery( $filteredText, $fulltext ) {
index d51bff7..1d28691 100644 (file)
@@ -166,11 +166,16 @@ class SearchResult {
 
                // TODO: make highliter take a content object. Make ContentHandler a factory for SearchHighliter.
                list( $contextlines, $contextchars ) = SearchEngine::userHighlightPrefs();
+
                $h = new SearchHighlighter();
-               if ( $wgAdvancedSearchHighlighting ) {
-                       return $h->highlightText( $this->mText, $terms, $contextlines, $contextchars );
+               if ( count( $terms ) > 0 ) {
+                       if ( $wgAdvancedSearchHighlighting ) {
+                               return $h->highlightText( $this->mText, $terms, $contextlines, $contextchars );
+                       } else {
+                               return $h->highlightSimple( $this->mText, $terms, $contextlines, $contextchars );
+                       }
                } else {
-                       return $h->highlightSimple( $this->mText, $terms, $contextlines, $contextchars );
+                       return $h->highlightNone( $this->mText, $contextlines, $contextchars );
                }
        }
 
index 05d5ca0..eee6930 100644 (file)
@@ -38,6 +38,8 @@ class SearchSqlite extends SearchDatabase {
         * Parse the user's query and transform it into an SQL fragment which will
         * become part of a WHERE clause
         *
+        * @param string $filteredText
+        * @param bool $fulltext
         * @return string
         */
        function parseQuery( $filteredText, $fulltext ) {
index c4de2ad..3750bad 100644 (file)
@@ -144,7 +144,7 @@ abstract class Skin extends ContextSource {
         * Factory method for loading a skin of a given type
         * @param string $key 'monobook', 'vector', etc.
         * @return Skin
-        * @deprecated Use SkinFactory instead
+        * @deprecated since 1.24; Use SkinFactory instead
         */
        static function &newFromKey( $key ) {
                wfDeprecated( __METHOD__, '1.24' );
@@ -415,7 +415,7 @@ abstract class Skin extends ContextSource {
                return "$numeric $type $name";
        }
 
-       /*
+       /**
         * Return values for <html> element
         * @return array of associative name-to-value elements for <html> element
         */
index 51aced9..0935e33 100644 (file)
@@ -34,10 +34,19 @@ class SkinFactory {
         */
        private $factoryFunctions = array();
        /**
-        * Map of name => human readable name
+        * Map of name => fallback human-readable name, used when the 'skinname-<skin>' message is not
+        * available
+        *
         * @var array
         */
        private $displayNames = array();
+       /**
+        * Map of name => class name without "Skin" prefix, for legacy skins using the autodiscovery
+        * mechanism
+        *
+        * @var array
+        */
+       private $legacySkins = array();
 
        /**
         * @var SkinFactory
@@ -53,11 +62,16 @@ class SkinFactory {
        }
 
        /**
-        * Register a new Skin factory function
-        * Will override if it's already registered
-        * @param string $name
-        * @param string $displayName
-        * @param callable $callback That takes the skin name as an argument
+        * Register a new Skin factory function.
+        *
+        * Will override if it's already registered.
+        *
+        * @param string $name Internal skin name. Should be all-lowercase (technically doesn't have
+        *     to be, but doing so would change the case of i18n message keys).
+        * @param string $displayName For backwards-compatibility with old skin loading system. This is
+        *     the text used as skin's human-readable name when the 'skinname-<skin>' message is not
+   *     available. It should be the same as the skin name provided in $wgExtensionCredits.
+        * @param callable $callback Callback that takes the skin name as an argument
         * @throws InvalidArgumentException If an invalid callback is provided
         */
        public function register( $name, $displayName, $callback ) {
@@ -72,10 +86,9 @@ class SkinFactory {
         * @return array
         */
        private function getLegacySkinNames() {
-               global $wgValidSkinNames;
                static $skinsInitialised = false;
 
-               if ( !$skinsInitialised || !count( $wgValidSkinNames ) ) {
+               if ( !$skinsInitialised || !count( $this->legacySkins ) ) {
                        # Get a list of available skins
                        # Build using the regular expression '^(.*).php$'
                        # Array keys are all lower case, array value keep the case used by filename
@@ -117,7 +130,7 @@ class SkinFactory {
                                                        "The mechanism will be removed in MediaWiki 1.25 and the skin will no longer be recognized. " .
                                                        "See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for information how to fix this."
                                                );
-                                               $wgValidSkinNames[strtolower( $aSkin )] = $aSkin;
+                                               $this->legacySkins[strtolower( $aSkin )] = $aSkin;
                                        }
                                }
                                $skinDir->close();
@@ -125,7 +138,7 @@ class SkinFactory {
                        $skinsInitialised = true;
                        wfProfileOut( __METHOD__ . '-init' );
                }
-               return $wgValidSkinNames;
+               return $this->legacySkins;
 
        }
 
@@ -143,8 +156,7 @@ class SkinFactory {
        }
 
        /**
-        * Get a legacy skin which uses $wgValidSkinNames
-        * or autoloading
+        * Get a legacy skin which uses the autodiscovery mechanism.
         *
         * @param string $name
         * @return Skin|bool false if the skin couldn't be constructed
@@ -185,7 +197,7 @@ class SkinFactory {
         */
        public function makeSkin( $name ) {
                if ( !isset( $this->factoryFunctions[$name] ) ) {
-                       // Check the legacy method of skin loading
+                       // Check the legacy autodiscovery method of skin loading
                        $legacy = $this->getLegacySkin( $name );
                        if ( $legacy ) {
                                return $legacy;
index 6055473..b63f7a1 100644 (file)
  * SkinTemplate class for the fallback skin
  */
 class SkinFallback extends SkinTemplate {
-       var $skinname = 'fallback', $template = 'SkinFallbackTemplate';
+
+       public $skinname = 'fallback';
+       public $template = 'SkinFallbackTemplate';
 
        /**
         * Add CSS via ResourceLoader
         *
-        * @param $out OutputPage
+        * @param OutputPage $out
         */
-       function setupSkinUserCss( OutputPage $out ) {
+       public function setupSkinUserCss( OutputPage $out ) {
                parent::setupSkinUserCss( $out );
                $out->addModuleStyles( 'mediawiki.skinning.interface' );
        }
index 0703b0e..603ee5c 100644 (file)
@@ -40,7 +40,7 @@ class SkinFallbackTemplate extends BaseTemplate {
        private function buildHelpfulInformationMessage() {
                $defaultSkin = $this->config->get( 'DefaultSkin' );
                $installedSkins = $this->findInstalledSkins();
-               $enabledSkins = $this->config->get( 'ValidSkinNames' );
+               $enabledSkins = SkinFactory::getDefaultInstance()->getSkinNames();
                $enabledSkins = array_change_key_case( $enabledSkins, CASE_LOWER );
 
                if ( $installedSkins ) {
index 867d8ec..b6077b3 100644 (file)
@@ -271,7 +271,7 @@ class SkinTemplate extends Skin {
                wfProfileIn( __METHOD__ . '-init' );
                $this->initPage( $out );
                wfProfileOut( __METHOD__ . '-init' );
-               $tpl = $this->prepareQuickTemplate( $out );
+               $tpl = $this->prepareQuickTemplate();
                // execute template
                wfProfileIn( __METHOD__ . '-execute' );
                $res = $tpl->execute();
@@ -1375,8 +1375,9 @@ abstract class QuickTemplate {
 
        /** @var Config $config */
        protected $config;
+
        /**
-        * @var Config $config
+        * @param Config $config
         */
        function __construct( Config $config = null ) {
                $this->data = array();
index 4edd87a..8fc28f8 100644 (file)
@@ -333,6 +333,12 @@ class SpecialPage {
                $out->setArticleRelated( false );
                $out->setRobotPolicy( $this->getRobotPolicy() );
                $out->setPageTitle( $this->getDescription() );
+               if ( $this->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+                       $out->addModuleStyles( array(
+                               'mediawiki.ui.input',
+                               'mediawiki.ui.checkbox',
+                       ) );
+               }
        }
 
        /**
index 572eacc..ce43652 100644 (file)
@@ -46,6 +46,11 @@ class ActiveUsersPager extends UsersPager {
         */
        protected $hideRights = array();
 
+       /**
+        * @var array
+        */
+       private $blockStatusByUid;
+
        /**
         * @param IContextSource $context
         * @param null $group Unused
index 9170e3e..62fadb5 100644 (file)
@@ -84,7 +84,7 @@ class SpecialBlockList extends SpecialPage {
                                'flatlist' => true,
                        ),
                        'Limit' => array(
-                               'class' => 'HTMLBlockedUsersItemSelect',
+                               'type' => 'limitselect',
                                'label-message' => 'table_pager_limit_label',
                                'options' => array(
                                        $lang->formatNum( 20 ) => 20,
@@ -457,37 +457,3 @@ class BlockListPager extends TablePager {
                wfProfileOut( __METHOD__ );
        }
 }
-
-/**
- * Items per page dropdown. Essentially a crap workaround for bug 32603.
- */
-class HTMLBlockedUsersItemSelect extends HTMLSelectField {
-       /**
-        * Basically don't do any validation. If it's a number that's fine. Also,
-        * add it to the list if it's not there already
-        *
-        * @param string $value
-        * @param array $alldata
-        * @return bool
-        */
-       function validate( $value, $alldata ) {
-               if ( $value == '' ) {
-                       return true;
-               }
-
-               // Let folks pick an explicit limit not from our list, as long as it's a real numbr.
-               if ( !in_array( $value, $this->mParams['options'] )
-                       && $value == intval( $value )
-                       && $value > 0
-               ) {
-                       // This adds the explicitly requested limit value to the drop-down,
-                       // then makes sure it's sorted correctly so when we output the list
-                       // later, the custom option doesn't just show up last.
-                       $this->mParams['options'][$this->mParent->getLanguage()->formatNum( $value )] =
-                               intval( $value );
-                       asort( $this->mParams['options'] );
-               }
-
-               return true;
-       }
-}
index 867fd1b..24664ed 100644 (file)
@@ -43,6 +43,7 @@ class SpecialChangePassword extends FormSpecialPage {
 
        /**
         * Main execution point
+        * @param string|null $par
         */
        function execute( $par ) {
                $this->getOutput()->disallowUserJs();
@@ -229,6 +230,9 @@ class SpecialChangePassword extends FormSpecialPage {
        }
 
        /**
+        * @param string $oldpass
+        * @param string $newpass
+        * @param string $retype
         * @throws PasswordError When cannot set the new password because requirements not met.
         */
        protected function attemptReset( $oldpass, $newpass, $retype ) {
index 15a5b74..af8ab58 100644 (file)
@@ -163,7 +163,7 @@ class SpecialContributions extends IncludableSpecialPage {
                }
 
                if ( $feedType ) {
-                       // Maintain some level of backwards compatability
+                       // Maintain some level of backwards compatibility
                        // If people request feeds using the old parameters, redirect to API
                        $feedParams['feedformat'] = $feedType;
                        $url = wfAppendQuery( wfScript( 'api' ), $feedParams );
index 60eec39..269dff6 100644 (file)
@@ -50,6 +50,7 @@ class SpecialExpandTemplates extends SpecialPage {
 
        /**
         * Show the special page
+        * @param string|null $subpage
         */
        function execute( $subpage ) {
                global $wgParser;
index 2d72d62..1b45315 100644 (file)
@@ -31,6 +31,8 @@
  */
 class SpecialImport extends SpecialPage {
        private $interwiki = false;
+       private $subproject;
+       private $fullInterwikiPrefix;
        private $namespace;
        private $rootpage = '';
        private $frompage = '';
@@ -49,11 +51,14 @@ class SpecialImport extends SpecialPage {
 
        /**
         * Execute
+        * @param string|null $par
         */
        function execute( $par ) {
                $this->setHeaders();
                $this->outputHeader();
 
+               $this->getOutput()->addModules( 'mediawiki.special.import' );
+
                $user = $this->getUser();
                if ( !$user->isAllowedAny( 'import', 'importupload' ) ) {
                        throw new PermissionsError( 'import' );
@@ -115,19 +120,30 @@ class SpecialImport extends SpecialPage {
                        if ( !$user->isAllowed( 'import' ) ) {
                                throw new PermissionsError( 'import' );
                        }
-                       $this->interwiki = $request->getVal( 'interwiki' );
-                       if ( !in_array( $this->interwiki, $this->getConfig()->get( 'ImportSources' ) ) ) {
+                       $this->interwiki = $this->fullInterwikiPrefix = $request->getVal( 'interwiki' );
+                       // does this interwiki have subprojects?
+                       $importSources = $this->getConfig()->get( 'ImportSources' );
+                       $hasSubprojects = array_key_exists( $this->interwiki, $importSources );
+                       if ( !$hasSubprojects && !in_array( $this->interwiki, $importSources ) ) {
                                $source = Status::newFatal( "import-invalid-interwiki" );
                        } else {
-                               $this->history = $request->getCheck( 'interwikiHistory' );
-                               $this->frompage = $request->getText( "frompage" );
-                               $this->includeTemplates = $request->getCheck( 'interwikiTemplates' );
-                               $source = ImportStreamSource::newFromInterwiki(
-                                       $this->interwiki,
-                                       $this->frompage,
-                                       $this->history,
-                                       $this->includeTemplates,
-                                       $this->pageLinkDepth );
+                               if ( $hasSubprojects ) {
+                                       $this->subproject = $request->getVal( 'subproject' );
+                                       $this->fullInterwikiPrefix .= ':' . $request->getVal( 'subproject' );
+                               }
+                               if ( $hasSubprojects && !in_array( $this->subproject, $importSources[$this->interwiki] ) ) {
+                                       $source = Status::newFatal( "import-invalid-interwiki" );
+                               } else {
+                                       $this->history = $request->getCheck( 'interwikiHistory' );
+                                       $this->frompage = $request->getText( "frompage" );
+                                       $this->includeTemplates = $request->getCheck( 'interwikiTemplates' );
+                                       $source = ImportStreamSource::newFromInterwiki(
+                                               $this->fullInterwikiPrefix,
+                                               $this->frompage,
+                                               $this->history,
+                                               $this->includeTemplates,
+                                               $this->pageLinkDepth );
+                               }
                        }
                } else {
                        $source = Status::newFatal( "importunknownsource" );
@@ -165,7 +181,7 @@ class SpecialImport extends SpecialPage {
                        $reporter = new ImportReporter(
                                $importer,
                                $isUpload,
-                               $this->interwiki,
+                               $this->fullInterwikiPrefix,
                                $this->logcomment
                        );
                        $reporter->setContext( $this->getContext() );
@@ -298,7 +314,7 @@ class SpecialImport extends SpecialPage {
                                        Xml::openElement( 'table', array( 'id' => 'mw-import-table-interwiki' ) ) .
                                        "<tr>
                                        <td class='mw-label'>" .
-                                       Xml::label( $this->msg( 'import-interwiki-source' )->text(), 'interwiki' ) .
+                                       Xml::label( $this->msg( 'import-interwiki-sourcewiki' )->text(), 'interwiki' ) .
                                        "</td>
                                        <td class='mw-input'>" .
                                        Xml::openElement(
@@ -307,13 +323,63 @@ class SpecialImport extends SpecialPage {
                                        )
                        );
 
-                       foreach ( $importSources as $prefix ) {
-                               $selected = ( $this->interwiki === $prefix ) ? ' selected="selected"' : '';
-                               $out->addHTML( Xml::option( $prefix, $prefix, $selected ) );
+                       $needSubprojectField = false;
+                       foreach ( $importSources as $key => $value ) {
+                               if ( is_int( $key ) ) {
+                                       $key = $value;
+                               } else if ( $value !== $key ) {
+                                       $needSubprojectField = true;
+                               }
+
+                               $attribs = array(
+                                       'value' => $key,
+                               );
+                               if ( is_array( $value ) ) {
+                                       $attribs['data-subprojects'] = implode( ' ', $value );
+                               }
+                               if ( $this->interwiki === $key ) {
+                                       $attribs['selected'] = 'selected';
+                               }
+                               $out->addHTML( Html::element( 'option', $attribs, $key ) );
+                       }
+
+                       $out->addHTML(
+                               Xml::closeElement( 'select' )
+                       );
+
+                       if ( $needSubprojectField ) {
+                               $out->addHTML(
+                                       Xml::openElement(
+                                               'select',
+                                               array( 'name' => 'subproject', 'id' => 'subproject' )
+                                       )
+                               );
+
+                               $subprojectsToAdd = array();
+                               foreach ( $importSources as $key => $value ) {
+                                       if ( is_array( $value ) ) {
+                                               $subprojectsToAdd = array_merge( $subprojectsToAdd, $value );
+                                       }
+                               }
+                               $subprojectsToAdd = array_unique( $subprojectsToAdd );
+                               sort( $subprojectsToAdd );
+                               foreach ( $subprojectsToAdd as $subproject ) {
+                                       $out->addHTML( Xml::option( $subproject, $subproject, $this->subproject === $subproject ) );
+                               }
+
+                               $out->addHTML(
+                                       Xml::closeElement( 'select' )
+                               );
                        }
 
                        $out->addHTML(
-                               Xml::closeElement( 'select' ) .
+                                       "</td>
+                               </tr>
+                               <tr>
+                                       <td class='mw-label'>" .
+                                       Xml::label( $this->msg( 'import-interwiki-sourcepage' )->text(), 'frompage' ) .
+                                       "</td>
+                                       <td class='mw-input'>" .
                                        Xml::input( 'frompage', 50, $this->frompage, array( 'id' => 'frompage' ) ) .
                                        "</td>
                                </tr>
index c62c1de..ed7648d 100644 (file)
@@ -499,42 +499,61 @@ class ImageListPager extends TablePager {
        }
 
        function getForm() {
-               $inputForm = array();
-               $inputForm['table_pager_limit_label'] = $this->getLimitSelect( array( 'tabindex' => 1 ) );
+               $fields = array();
+               $fields['limit'] = array(
+                       'type' => 'select',
+                       'name' => 'limit',
+                       'label-message' => 'table_pager_limit_label',
+                       'options' => $this->getLimitSelectList(),
+                       'default' => $this->mLimit,
+               );
+
                if ( !$this->getConfig()->get( 'MiserMode' ) ) {
-                       $inputForm['listfiles_search_for'] = Html::input(
-                               'ilsearch',
-                               $this->mSearch,
-                               'text',
-                               array(
-                                       'size' => '40',
-                                       'maxlength' => '255',
-                                       'id' => 'mw-ilsearch',
-                                       'tabindex' => 2,
-                               )
+                       $fields['ilsearch'] = array(
+                               'type' => 'text',
+                               'name' => 'ilsearch',
+                               'id' => 'mw-ilsearch',
+                               'label-message' => 'listfiles_search_for',
+                               'default' => $this->mSearch,
+                               'size' => '40',
+                               'maxlength' => '255',
                        );
                }
-               $inputForm['username'] = Html::input( 'user', $this->mUserName, 'text', array(
+
+               $fields['user'] = array(
+                       'type' => 'text',
+                       'name' => 'user',
+                       'id' => 'mw-listfiles-user',
+                       'label-message' => 'username',
+                       'default' => $this->mUserName,
                        'size' => '40',
                        'maxlength' => '255',
-                       'id' => 'mw-listfiles-user',
-                       'tabindex' => 3,
-               ) );
-
-               $inputForm['listfiles-show-all'] = Html::input( 'ilshowall', 1, 'checkbox', array(
-                       'checked' => $this->mShowAll,
-                       'tabindex' => 4,
-               ) );
-
-               return Html::openElement( 'form',
-                       array( 'method' => 'get', 'action' => wfScript(), 'id' => 'mw-listfiles-form' )
-               ) .
-                       Xml::fieldset( $this->msg( 'listfiles' )->text() ) .
-                       Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
-                       Xml::buildForm( $inputForm, 'table_pager_limit_submit', array( 'tabindex' => 5 ) ) .
-                       $this->getHiddenFields( array( 'limit', 'ilsearch', 'user', 'title', 'ilshowall' ) ) .
-                       Html::closeElement( 'fieldset' ) .
-                       Html::closeElement( 'form' ) . "\n";
+               );
+
+               $fields['ilshowall'] = array(
+                       'type' => 'check',
+                       'name' => 'ilshowall',
+                       'id' => 'mw-listfiles-show-all',
+                       'label-message' => 'listfiles-show-all',
+                       'default' => $this->mShowAll,
+               );
+
+               $query = $this->getRequest()->getQueryValues();
+               unset( $query['title'] );
+               unset( $query['limit'] );
+               unset( $query['ilsearch'] );
+               unset( $query['user'] );
+
+               $form = new HTMLForm( $fields, $this->getContext() );
+
+               $form->setMethod( 'get' );
+               $form->setId( 'mw-listfiles-form' );
+               $form->setWrapperLegendMsg( 'listfiles' );
+               $form->setSubmitTextMsg( 'table_pager_limit_submit' );
+               $form->addHiddenFields( $query );
+
+               $form->prepareForm();
+               $form->displayForm( '' );
        }
 
        function getTableClass() {
index 582f743..b5818ea 100644 (file)
@@ -35,6 +35,7 @@ class SpecialListGroupRights extends SpecialPage {
 
        /**
         * Show the special page
+        * @param string|null $par
         */
        public function execute( $par ) {
                global $wgImplicitGroups;
index 28a1bc5..570ab3b 100644 (file)
@@ -46,7 +46,7 @@
  *
  * @ingroup SpecialPage
  */
-class SpecialRandomInCategory extends SpecialPage {
+class SpecialRandomInCategory extends FormSpecialPage {
        protected $extra = array(); // Extra SQL statements
        protected $category = false; // Title object of category
        protected $maxOffset = 30; // Max amount to fudge randomness by.
@@ -67,10 +67,35 @@ class SpecialRandomInCategory extends SpecialPage {
                $this->minTimestamp = null;
        }
 
-       public function execute( $par ) {
+       protected function getFormFields() {
+               $form = array(
+                       'category' => array(
+                               'type' => 'text',
+                               'label-message' => 'randomincategory-category',
+                               'required' => true,
+                       )
+               );
+
+               return $form;
+       }
+
+       public function requiresWrite() {
+               return false;
+       }
+
+       public function requiresUnblock() {
+               return false;
+       }
+
+       protected function setParameter( $par ) {
+               // if subpage present, fake form submission
+               $this->onSubmit( array( 'category' => $par ) );
+       }
+
+       public function onSubmit( array $data ) {
                $cat = false;
 
-               $categoryStr = $this->getRequest()->getText( 'category', $par );
+               $categoryStr = $data['category'];
 
                if ( $categoryStr ) {
                        $cat = Title::newFromText( $categoryStr, NS_CATEGORY );
@@ -86,41 +111,25 @@ class SpecialRandomInCategory extends SpecialPage {
                }
 
                if ( !$this->category && $categoryStr ) {
-                       $this->setHeaders();
-                       $this->getOutput()->addWikiMsg( 'randomincategory-invalidcategory',
+                       $msg = $this->msg( 'randomincategory-invalidcategory',
                                wfEscapeWikiText( $categoryStr ) );
 
-                       return;
+                       return Status::newFatal( $msg );
+
                } elseif ( !$this->category ) {
-                       $this->setHeaders();
-                       $input = Html::input( 'category' );
-                       $submitText = $this->msg( 'randomincategory-selectcategory-submit' )->text();
-                       $submit = Html::input( '', $submitText, 'submit' );
-
-                       $msg = $this->msg( 'randomincategory-selectcategory' );
-                       $form = Html::rawElement( 'form', array( 'action' => wfScript() ),
-                               Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) .
-                               $msg->rawParams( $input, $submit )->parse()
-                       );
-                       $this->getOutput()->addHtml( $form );
-
-                       return;
+                       return; // no data sent
                }
 
                $title = $this->getRandomTitle();
 
                if ( is_null( $title ) ) {
-                       $this->setHeaders();
-                       $this->getOutput()->addWikiMsg( 'randomincategory-nopages',
+                       $msg = $this->msg( 'randomincategory-nopages',
                                $this->category->getText() );
 
-                       return;
+                       return Status::newFatal( $msg );
                }
 
-               $query = $this->getRequest()->getValues();
-               unset( $query['title'] );
-               unset( $query['category'] );
-               $this->getOutput()->redirect( $title->getFullURL( $query ) );
+               $this->getOutput()->redirect( $title->getFullURL() );
        }
 
        /**
index 9700638..3ad9f0f 100644 (file)
@@ -220,19 +220,11 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                return $res;
        }
 
-       protected function runMainQueryHook( &$tables, &$select, &$conds, &$query_options, &$join_conds, $opts ) {
-               return parent::runMainQueryHook( $tables, $select, $conds, $query_options, $join_conds, $opts )
-               && wfRunHooks(
-                       'SpecialRecentChangesQuery',
-                       array( &$conds, &$tables, &$join_conds, $opts, &$query_options, &$select ),
-                       '1.23'
-               );
-       }
-
        function setTopText( FormOptions $opts ) {
                $target = $this->getTargetTitle();
                if ( $target ) {
                        $this->getOutput()->addBacklinkSubtitle( $target );
+                       $this->getSkin()->setRelevantTitle( $target );
                }
        }
 
index 774fd80..2022d74 100644 (file)
@@ -55,6 +55,7 @@ class SpecialRedirect extends FormSpecialPage {
 
        /**
         * Set $mType and $mValue based on parsed value of $subpage.
+        * @param string $subpage
         */
        function setParameter( $subpage ) {
                // parse $subpage to pull out the parts
index bc1326b..6c5401a 100644 (file)
@@ -112,6 +112,7 @@ class SpecialResetTokens extends FormSpecialPage {
        /**
         * Suppress the submit button if there's nothing to do;
         * provide additional message on it otherwise.
+        * @param HTMLForm $form
         */
        protected function alterForm( HTMLForm $form ) {
                if ( $this->getTokensList() ) {
index 93df289..7eea71d 100644 (file)
@@ -622,6 +622,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
 
        /**
         * Report that the submit operation failed
+        * @param Status $status
         */
        protected function failure( $status ) {
                // Messages: revdelete-failure, logdelete-failure
index 5f16239..59d65bc 100644 (file)
@@ -96,6 +96,16 @@ class SpecialSearch extends SpecialPage {
                $search = str_replace( "\n", " ", $request->getText( 'search', $titleParam ) );
 
                $this->load();
+               if ( !is_null( $request->getVal( 'nsRemember' ) ) ) {
+                       $this->saveNamespaces();
+                       // Remove the token from the URL to prevent the user from inadvertently
+                       // exposing it (e.g. by pasting it into a public wiki page) or undoing
+                       // later settings changes (e.g. by reloading the page).
+                       $query = $request->getValues();
+                       unset( $query['title'], $query['nsRemember'] );
+                       $out->redirect( $this->getPageTitle()->getFullURL( $query ) );
+                       return;
+               }
 
                $this->searchEngineType = $request->getVal( 'srbackend' );
 
@@ -209,7 +219,6 @@ class SpecialSearch extends SpecialPage {
                $search = $this->getSearchEngine();
                $search->setLimitOffset( $this->limit, $this->offset );
                $search->setNamespaces( $this->namespaces );
-               $this->saveNamespaces();
                $search->prefix = $this->mPrefix;
                $term = $search->transformSearchTerm( $term );
 
@@ -516,9 +525,8 @@ class SpecialSearch extends SpecialPage {
                $request = $this->getRequest();
 
                if ( $user->isLoggedIn() &&
-                       !is_null( $request->getVal( 'nsRemember' ) ) &&
                        $user->matchEditToken(
-                               $request->getVal( 'nsToken' ),
+                               $request->getVal( 'nsRemember' ),
                                'searchnamespace',
                                $request
                        )
@@ -528,7 +536,7 @@ class SpecialSearch extends SpecialPage {
                        foreach ( MWNamespace::getValidNamespaces() as $n ) {
                                $user->setOption( 'searchNs' . $n, false );
                        }
-                       // The request parameters include all the namespaces we just searched.
+                       // The request parameters include all the namespaces to be searched.
                        // Even if they're the same as an existing profile, they're not eaten.
                        foreach ( $this->namespaces as $n ) {
                                $user->setOption( 'searchNs' . $n, true );
@@ -932,18 +940,17 @@ class SpecialSearch extends SpecialPage {
                $remember = '';
                $user = $this->getUser();
                if ( $user->isLoggedIn() ) {
-                       $remember .= Html::hidden(
-                               'nsToken',
-                               $user->getEditToken(
-                                       'searchnamespace',
-                                       $this->getRequest()
-                               )
-                       ) .
-                       Xml::checkLabel(
+                       $remember .= Xml::checkLabel(
                                wfMessage( 'powersearch-remember' )->text(),
                                'nsRemember',
                                'mw-search-powersearch-remember',
-                               false
+                               false,
+                               // The token goes here rather than in a hidden field so it
+                               // is only sent when necessary (not every form submission).
+                               array( 'value' => $user->getEditToken(
+                                       'searchnamespace',
+                                       $this->getRequest()
+                               ) )
                        );
                }
 
@@ -951,7 +958,7 @@ class SpecialSearch extends SpecialPage {
                return Xml::openElement( 'fieldset', array( 'id' => 'mw-searchoptions' ) ) .
                        Xml::element( 'legend', null, $this->msg( 'powersearch-legend' )->text() ) .
                        Xml::tags( 'h4', null, $this->msg( 'powersearch-ns' )->parse() ) .
-                       Html::element( 'div', array( 'id' => 'mw-search-togglebox' ) ) .
+                       Xml::element( 'div', array( 'id' => 'mw-search-togglebox' ), '', false ) .
                        Xml::element( 'div', array( 'class' => 'divider' ), '', false ) .
                        implode( Xml::element( 'div', array( 'class' => 'divider' ), '', false ), $showSections ) .
                        $hidden .
@@ -1068,6 +1075,8 @@ class SpecialSearch extends SpecialPage {
 
        /**
         * @param string $term
+        * @param int $resultsShown
+        * @param int $totalNum
         * @return string
         */
        protected function shortDialog( $term, $resultsShown, $totalNum ) {
index fe0638e..bb07c19 100644 (file)
@@ -72,6 +72,7 @@ class UnwatchedpagesPage extends QueryPage {
 
        /**
         * Add the JS
+        * @param string|null $par
         */
        public function execute( $par ) {
                parent::execute( $par );
index bd7457e..afa12a0 100644 (file)
@@ -220,7 +220,7 @@ class LoginForm extends SpecialPage {
                }
        }
 
-       /*
+       /**
         * @param string|null $subPage
         */
        public function execute( $subPage ) {
@@ -1237,6 +1237,8 @@ class LoginForm extends SpecialPage {
        }
 
        /**
+        * @param string $msg
+        * @param string $msgtype
         * @private
         */
        function mainLoginForm( $msg, $msgtype = 'error' ) {
@@ -1278,6 +1280,7 @@ class LoginForm extends SpecialPage {
                $out->addModuleStyles( array(
                        'mediawiki.ui',
                        'mediawiki.ui.button',
+                       'mediawiki.ui.checkbox',
                        'mediawiki.ui.input',
                        'mediawiki.special.userlogin.common.styles'
                ) );
@@ -1522,6 +1525,7 @@ class LoginForm extends SpecialPage {
        }
 
        /**
+        * @param string $type
         * @private
         */
        function cookieRedirectCheck( $type ) {
@@ -1537,6 +1541,7 @@ class LoginForm extends SpecialPage {
        }
 
        /**
+        * @param string $type
         * @private
         */
        function onCookieRedirectCheck( $type ) {
index 318ceb1..87ab41c 100644 (file)
@@ -50,6 +50,7 @@ class SpecialVersion extends SpecialPage {
 
        /**
         * main()
+        * @param string|null $par
         */
        public function execute( $par ) {
                global $IP, $wgExtensionCredits;
index f1e7065..01da0bd 100644 (file)
@@ -94,14 +94,15 @@ class UsercreateTemplate extends BaseTemplate {
 
                        <div class="mw-ui-vform-field">
                                <?php if ( $this->data['createemail'] ) { ?>
-                                       <label class="mw-ui-checkbox-label">
+                                       <div class="mw-ui-checkbox">
                                                <input name="wpCreateaccountMail" type="checkbox" value="1" id="wpCreateaccountMail" tabindex="2"
                                                        <?php if ( $this->data['createemailset'] ) {
                                                                echo 'checked="checked"';
                                                        } ?>
-                                               >
-                                               <?php $this->msg( 'createaccountmail' ); ?>
-                                       </label>
+                                               ><label for="wpCreateaccountMail">
+                                                       <?php $this->msg( 'createaccountmail' ); ?>
+                                               </label>
+                                       </div>
                                <?php } ?>
                        </div>
 
@@ -207,7 +208,7 @@ class UsercreateTemplate extends BaseTemplate {
                                                // If it's a checkbox, output the whole thing (assume it has a msg).
                                                if ( $inputItem['type'] == 'checkbox' ) {
                                                ?>
-                                                       <label class="mw-ui-checkbox-label">
+                                                       <div class="mw-ui-checkbox">
                                                                <input
                                                                        name="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
                                                                        id="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
@@ -216,9 +217,8 @@ class UsercreateTemplate extends BaseTemplate {
                                                                        <?php if ( !empty( $inputItem['value'] ) ) {
                                                                                echo 'checked="checked"';
                                                                        } ?>
-                                                               >
-                                                               <?php $this->msgHtml( $inputItem['msg'] ); ?>
-                                                       </label>
+                                                               ><label for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"></label>
+                                                       </div><?php $this->msgHtml( $inputItem['msg'] ); ?>
                                                <?php
                                                } else {
                                                        // Not a checkbox.
index 7187e8c..8bba426 100644 (file)
@@ -135,14 +135,14 @@ class UserloginTemplate extends BaseTemplate {
 
                        <div class="mw-ui-vform-field">
                                <?php if ( $this->data['canremember'] ) { ?>
-                                       <label class="mw-ui-checkbox-label">
+                                       <div class="mw-ui-checkbox">
                                                <input name="wpRemember" type="checkbox" value="1" id="wpRemember" tabindex="4"
                                                        <?php if ( $this->data['remember'] ) {
                                                                echo 'checked="checked"';
                                                        } ?>
-                                               >
-                                               <?php echo $this->getMsg( 'userlogin-remembermypassword' )->numParams( $expirationDays )->escaped(); ?>
-                                       </label>
+                                               ><label for="wpRemember">
+                                                       <?php echo $this->getMsg( 'userlogin-remembermypassword' )->numParams( $expirationDays )->escaped(); ?></label>
+                                       </div>
                                <?php } ?>
                        </div>
 
index 4d74a2d..5de543e 100644 (file)
@@ -171,6 +171,7 @@ abstract class UploadBase {
                        return null;
                }
 
+               /** @var UploadBase $handler */
                $handler = new $className;
 
                $handler->initializeFromRequest( $request );
@@ -882,7 +883,7 @@ abstract class UploadBase {
        /**
         * Return the local file and initializes if necessary.
         *
-        * @return LocalFile|null
+        * @return LocalFile|UploadStashFile|null
         */
        public function getLocalFile() {
                if ( is_null( $this->mLocalFile ) ) {
@@ -1498,7 +1499,7 @@ abstract class UploadBase {
 
        /**
         * Divide the element name passed by the xml parser to the callback into URI and prifix.
-        * @param string $name
+        * @param string $element
         * @return array Containing the namespace URI and prefix
         */
        private static function splitXmlNamespace( $element ) {
@@ -1884,7 +1885,7 @@ abstract class UploadBase {
         * Get the current status of a chunked upload (used for polling).
         * The status will be read from the *current* user session.
         * @param string $statusKey
-        * @return array|bool
+        * @return Status[]|bool
         */
        public static function getSessionStatus( $statusKey ) {
                return isset( $_SESSION[self::SESSION_STATUS_KEY][$statusKey] )
index bea7128..d86de79 100644 (file)
@@ -32,6 +32,8 @@ class UploadFromChunks extends UploadFromFile {
        protected $mChunkIndex;
        protected $mFileKey;
        protected $mVirtualTempPath;
+       /** @var LocalRepo */
+       private $repo;
 
        /**
         * Setup local pointers to stash, repo and user (similar to UploadFromStash)
index 8610386..cc13679 100644 (file)
@@ -99,7 +99,8 @@ class MWCryptHKDF {
 
 
        /**
-        * @param string $hash Name of hashing algorithm
+        * @param string $secretKeyMaterial
+        * @param string $algorithm Name of hashing algorithm
         * @param BagOStuff $cache
         * @param string|array $context Context to mix into HKDF context
         */
@@ -257,8 +258,8 @@ class MWCryptHKDF {
         * and the SKM (source key material) is the "data".
         *
         * @param string $hash The hashing function to use (e.g., sha256)
-        * @param string $ikm The input keying material
         * @param string $salt The salt to add to the ikm, to get the prk
+        * @param string $ikm The input keying material
         * @return string Binary string (pseudorandm key) used as input to HKDFExpand
         */
        private static function HKDFExtract( $hash, $salt, $ikm ) {
index 604d381..dffe242 100644 (file)
@@ -117,7 +117,7 @@ class UIDGenerator {
        }
 
        /**
-        * @param array $time (UIDGenerator::millitime(), clock sequence)
+        * @param array $info (UIDGenerator::millitime(), clock sequence)
         * @return string 88 bits
         */
        protected function getTimestampedID88( array $info ) {
index 0f56e33..bc84976 100644 (file)
@@ -129,6 +129,9 @@ class ZipDirectoryReader {
 
        /**
         * Private constructor
+        * @param string $fileName
+        * @param callable $callback
+        * @param array $options
         */
        protected function __construct( $fileName, $callback, $options ) {
                $this->fileName = $fileName;
@@ -359,6 +362,8 @@ class ZipDirectoryReader {
 
        /**
         * Read the central directory at the given location
+        * @param int $offset
+        * @param int $size
         */
        function readCentralDirectory( $offset, $size ) {
                $block = $this->getBlock( $offset, $size );
@@ -450,6 +455,7 @@ class ZipDirectoryReader {
 
        /**
         * Interpret ZIP64 "extra field" data and return an associative array.
+        * @param string $extraField
         * @return array|bool
         */
        function unpackZip64Extra( $extraField ) {
@@ -575,6 +581,7 @@ class ZipDirectoryReader {
 
        /**
         * Get the size of a structure in bytes. See unpack() for the format of $struct.
+        * @param array $struct
         * @return int
         */
        function getStructSize( $struct ) {
index 99dc184..8440bd4 100644 (file)
@@ -345,7 +345,7 @@ class Language {
        /**
         * Returns true if a language code is an IETF tag known to MediaWiki.
         *
-        * @param string $code
+        * @param string $tag
         *
         * @since 1.21
         * @return bool
@@ -1026,6 +1026,11 @@ class Language {
 
        /**
         * Pass through result from $dateTimeObj->format()
+        * @param DateTime &$dateTimeObj
+        * @param string $ts
+        * @param DateTimeZone $zone
+        * @param string $code
+        * @return string
         */
        private static function dateTimeObjFormat( &$dateTimeObj, $ts, $zone, $code ) {
                if ( !$dateTimeObj ) {
@@ -3808,8 +3813,8 @@ class Language {
         * Checks that convertPlural was given an array and pads it to requested
         * amount of forms by copying the last one.
         *
-        * @param int $count How many forms should there be at least
         * @param array $forms Array of forms given to convertPlural
+        * @param int $count How many forms should there be at least
         * @return array Padded array of forms or an exception if not an array
         */
        protected function preConvertPlural( /* Array */ $forms, $count ) {
@@ -4611,7 +4616,7 @@ class Language {
         * @param Title $title Title object to link
         * @param int $offset
         * @param int $limit
-        * @param array|string $query Optional URL query parameter string
+        * @param array $query Optional URL query parameter string
         * @param bool $atend Optional param for specified if this is the last page
         * @return string
         */
@@ -4740,6 +4745,7 @@ class Language {
 
        /**
         * Find the index number of the plural rule appropriate for the given number
+        * @param int $number
         * @return int The index number of the plural rule
         */
        public function getPluralRuleIndexNumber( $number ) {
@@ -4753,6 +4759,7 @@ class Language {
         * For example, if the language is set to Arabic, getPluralType(5) should
         * return 'few'.
         * @since 1.22
+        * @param int $number
         * @return string The name of the plural rule type, e.g. one, two, few, many
         */
        public function getPluralRuleType( $number ) {
index 545f19a..f9e54ae 100644 (file)
        "talkpagelinktext": "Marit",
        "specialpage": "Laman kusuih",
        "personaltools": "Peukakaih droë",
-       "postcomment": "Beunagi barô",
        "articlepage": "Eu asoë laman",
        "talk": "Marit",
        "views": "Seuneudeuih",
        "externaldberror": "Na seunalah bak peusahèh basis data luwa atawa droëneuh hana geubri idin keu neupeubarô akun luwa droëneuh",
        "login": "Tamöng",
        "nav-login-createaccount": "Tamöng / dapeuta",
-       "loginprompt": "Droëneuh suwah/payah neupeu’udép ''cookies'' mangat jeuët neutamong u {{SITENAME}}",
        "userlogin": "Tamöng / dapeuta",
        "userloginnocreate": "Tamöng",
        "logout": "Teubiët",
        "filetype-banned": "Jeunèh beureukaih nyoe geutheun.",
        "illegal-filename": "Nan beureukaih han jeut lagèe nyoe.",
        "savefile": "Kubah beureukaih",
-       "uploadedimage": "peutamöng \"[[$1]]\"",
-       "overwroteimage": "peutamöng vèrsi barô \"[[$1]]\"",
        "upload-source": "Asai beureukaih",
        "sourcefilename": "Asai nan beureukaih:",
        "sourceurl": "Asai URL:",
index bae51c9..32b7b8c 100644 (file)
        "talkpagelinktext": "Ħdith",
        "specialpage": "صفحة خاصة",
        "personaltools": "Outils mteεek",
-       "postcomment": "قسم جديد",
        "articlepage": "عرض صفحة المحتوى",
        "talk": "Ħdith",
        "views": "Affichages",
        "externaldberror": "هناك إما خطأ في دخول قاعدة البيانات الخارجية أو أنه غير مسموح لك بتحديث حسابك الخارجي.",
        "login": "ادخل",
        "nav-login-createaccount": "Connecti / aεmel compte",
-       "loginprompt": "يجب أن تكون الكوكيز لديك مفعلة لتسجل الدخول إلى {{SITENAME}}.",
        "userlogin": "ادخل / أنشئ حسابا",
        "userloginnocreate": "دخول",
        "logout": "اخرج",
        "upload": "Abεeth des fichiers l'esserveur",
        "uploadlogpage": "سجل الرفع",
        "filedesc": "ملخص:",
-       "uploadedimage": "رفع \"[[$1]]\"",
        "license": "ترخيص:",
        "license-header": "licence",
        "file-anchor-link": "milaf (Fichier)",
index 9cb0166..3db54fb 100644 (file)
        "searchprofile-advanced-tooltip": "Soek in spesifieke naamruimtes",
        "search-result-size": "$1 ({{PLURAL:$2|1 woord|$2 woorde}})",
        "search-result-category-size": "{{PLURAL:$1|1 kategorielid|$1 kategorielede}} ({{PLURAL:$2|1 subkategorie|$2 subkategorieë}}, {{PLURAL:$3|1 lêer|$3 lêers}})",
-       "search-result-score": "Relevansie: $1%",
        "search-redirect": "(aanstuur $1)",
        "search-section": "(afdeling $1)",
        "search-suggest": "Het u $1 bedoel?",
        "uploadwarning": "Laaiwaarskuwing",
        "uploadwarning-text": "Verander die onderstaande lêerbeskrywing en probeer dan weer.",
        "savefile": "Stoor lêer",
-       "uploadedimage": "het \"[[$1]]\" gelaai",
-       "overwroteimage": "het 'n nuwe weergawe van \"[[$1]]\" opgelaai",
        "uploaddisabled": "Die oplaai van lêers is afgeskakel.",
        "copyuploaddisabled": "Die oplaai van lêers per URL is afgeskakel.",
        "uploaddisabledtext": "Die oplaai van lêers is afgeskakel.",
index df26585..6399f44 100644 (file)
        "talkpagelinktext": "Bisedo",
        "specialpage": "Faqe speciale",
        "personaltools": "Vegla vetjake",
-       "postcomment": "Sekcion i ri",
        "articlepage": "Shiko artikullin",
        "talk": "Diskutimi",
        "views": "Paraqitje",
        "externaldberror": "Ose pat gabim në databazën e autentifikimit, ose nuk lejoheni me ndryshue llogarinë tuej të jashtme.",
        "login": "Kyçu",
        "nav-login-createaccount": "Kyçu / çel llogari",
-       "loginprompt": "Shfletuesi duhet me pranue keksa (cookies) për me mujtë me u kyçë në {{SITENAME}}.",
        "userlogin": "Kyçu / çel llogari",
        "userloginnocreate": "Kyçu",
        "logout": "Çkyçu",
        "searchprofile-everything-tooltip": "Kërko krejt përmbajtjen (përfshi edhe faqet e diskutimit)",
        "searchprofile-advanced-tooltip": "Kërkimi në hapësina",
        "search-result-size": "$1 ({{PLURAL:$2|1 fjalë|$2 fjalë}})",
-       "search-result-score": "Relevanca: $1%",
        "search-redirect": "(përcjellje $1)",
        "search-section": "(sekcioni $1)",
        "search-suggest": "Mos menduet: $1",
        "recentchangeslinked-to": "Trego ndryshimet në faqet që lidhen në këtë faqe",
        "upload": "Ngarkoni skeda",
        "uploadlogpage": "Regjistri i ngarkimeve",
-       "uploadedimage": "ngarkue \"[[$1]]\"",
        "file-anchor-link": "Figura",
        "filehist": "Historiku i dosjes",
        "filehist-help": "Kliko në datë/orë për me pa skedën si âsht dukë në atë kohë.",
index 20ad098..1ff713b 100644 (file)
        "talkpagelinktext": "ውይይት",
        "specialpage": "ልዩ ገጽ",
        "personaltools": "የኔ መሣርያዎች",
-       "postcomment": "አስተያየት ለማቅረብ",
        "articlepage": "መጣጥፉን ለማየት",
        "talk": "ውይይት",
        "views": "ዕይታዎች",
        "externaldberror": "ወይም አፍአዊ የማረጋገጫ መረጃ-ቤት ስኅተት ነበረ፣ ወይም አፍአዊ አባልነትዎን ማሳደስ አልተፈቀዱም።",
        "login": "ለመግባት",
        "nav-login-createaccount": "መግቢያ",
-       "loginprompt": "(ወደ {{SITENAME}} በብዕር ስም ለመግባት በኮምፒዩተሮ ላይ ኩኪስ (cookies) እንዲቀመጡ መፍቀድ ይኖርቦታል።)",
        "userlogin": "ግባ / ተመዝገብ",
        "userloginnocreate": "ለመግባት",
        "logout": "ከብዕር ስምዎ ለመውጣት",
        "searchprofile-everything-tooltip": "ይዞታውን ሁሉ (ከነውይይት ገጾች) ለመፈለግ",
        "searchprofile-advanced-tooltip": "በልዩ ክፍለ-ዊኪዎች ለመፈለግ",
        "search-result-size": "$1 ({{PLURAL:$2|1 ቃል|$2 ቃላት}})",
-       "search-result-score": "ተገቢነት፦ $1%",
        "search-redirect": "(መምሪያ መንገድ $1)",
        "search-section": "(ክፍል $1)",
        "search-suggest": "ምናልባት $1 የፈለጉት ይሆን",
        "uploadwarning": "የመላክ ማስጠንቀቂያ",
        "uploadwarning-text": "እባክዎ፣ እታች ያለውን የፋይልን መግለጫ ቀይርና እንደገና ይሞክሩ።",
        "savefile": "ፋይሉ ለመቆጠብ",
-       "uploadedimage": "«[[$1]]» ላከ",
-       "overwroteimage": "የ«[[$1]]» አዲስ ዕትም ላከ",
        "uploaddisabled": "ፋይል መላክ አይቻልም",
        "uploaddisabledtext": "ፋይል መላክ በዚህ ዊኪ አይቻልም።",
        "uploadvirus": "ፋይሉ ቫይረስ አለበት! ዝርዝር፦ $1",
        "watchlist-details": "አሁን {{PLURAL:$1|$1 ገፅ|$1 ገፆች}} በምትከታተላቸው ገፆች ላይ አሉ (የውይይት ገፅ ሳይጨመር)።",
        "wlheader-enotif": "የ-ኢሜል ማስታወቂያ እንዲሠራ ተደርጓል።",
        "wlheader-showupdated": "መጨረሻ ከጎበኟቸው ጀምሮ የተቀየሩት ገጾች በ'''ጉልህ ፊደላት''' ይታያሉ",
+       "wlnote": "ባለፉት <b>$2</b> ሰዓቶች የተደረጉት $1 መጨረሻ ለውጦች እታች ይገኛሉ።",
        "wlshowlast": "ያለፉት $1 ሰዓት፤ $2 ቀን፤ $3 ይታዩ።",
        "watchlist-options": "የዝርዝሩ ምርጫዎች",
        "watching": "እየተጨመረ ነው...",
index d804ec0..bc94329 100644 (file)
        "talkpagelinktext": "Descutir",
        "specialpage": "Pachina Especial",
        "personaltools": "Ferramientas personals",
-       "postcomment": "Nueva sección",
        "articlepage": "Veyer l'articlo",
        "talk": "Discusión",
        "views": "Visualizacions",
        "externaldberror": "Bi habió una error d'autenticación externa d'a base de datos u bien no tiene premisos ta esviellar a suya cuenta externa.",
        "login": "Encetar sesión",
        "nav-login-createaccount": "Encetar una sesión / creyar cuenta",
-       "loginprompt": "Ta rechistrar-se en {{SITENAME}} ha d'activar as cookies en o navegador.",
        "userlogin": "Encetar una sesión / creyar cuenta",
        "userloginnocreate": "Encetar una sesión",
        "logout": "Salir d'a sesión",
        "searchprofile-advanced-tooltip": "Mirar en os siguients espacios de nombres",
        "search-result-size": "$1 ({{PLURAL:$2|1 parola|$2 parolas}})",
        "search-result-category-size": "{{PLURAL:$1|1 miembro|$1 miembros}} ({{PLURAL:$2|1 subcategoría|$2 subcategorías}}, {{PLURAL:$3|1 fichero|$3 fichers}})",
-       "search-result-score": "Relevancia: $1%",
        "search-redirect": "(endrecera dende $1)",
        "search-section": "(sección $1)",
        "search-suggest": "Quereba dicir $1?",
        "uploadwarning": "Alvertencia de carga de fichero",
        "uploadwarning-text": "Por favor, modifique a descripción d'o fichero d'abaixo y torne a intentar-lo.",
        "savefile": "Alzar fichero",
-       "uploadedimage": "«[[$1]]» cargato.",
-       "overwroteimage": "s'ha cargato una nueva versión de \"[[$1]]\"",
        "uploaddisabled": "A carga de fichers ye desactivata",
        "copyuploaddisabled": "Carga por URL desactivada.",
        "uploaddisabledtext": "A carga de fichers ye desactivata.",
        "watchlist-details": "{{PLURAL:$1|$1 pachina|$1 pachinas}} en a suya lista de seguimiento, sin contar-ie as pachinas de descusión.",
        "wlheader-enotif": "A notificación por correu electronico ye activata",
        "wlheader-showupdated": "Las pachinas cambiadas dende a suya zaguer vesita s'amuestran en '''negreta'''",
+       "wlnote": "Contino se i {{PLURAL:$1|amuestra o solo cambeo|amuestran os zaguers '''$1''' cambeos}} feitos en {{PLURAL:$2|a zaguer hora|as zagueras '''$2''' horas}}, o $3 a las $4.",
        "wlshowlast": "Amostrar as zagueras $1 horas, $2 días u $3",
        "watchlist-options": "Opcions d'a lista de seguimiento",
        "watching": "Cosirando...",
        "duplicate-defaultsort": "Pare cuenta: A clau d'ordenación por defecto «$2» anula l'anterior clau d'ordenación por defecto «$1».",
        "version": "Versión",
        "version-extensions": "Estensions instalatas",
+       "version-skins": "Aparencias",
        "version-specialpages": "Pachinas especials",
        "version-parserhooks": "Grifios d'o parser (parser hooks)",
        "version-variables": "Variables",
        "version-antispam": "Prevención de spam",
-       "version-skins": "Aparencias",
        "version-other": "Atros",
        "version-mediahandlers": "Maneyador de fichers multimedia",
        "version-hooks": "Grifios (Hooks)",
index e3ecd7d..c3bcbf6 100644 (file)
        "talkpagelinktext": "Mōtung",
        "specialpage": "Syndrig tramet",
        "personaltools": "Āgne tōlas",
-       "postcomment": "Nīwe dǣl",
        "articlepage": "Sēon innunge tramet",
        "talk": "Mōtung",
        "views": "Sihþa",
        "password-change-forbidden": "Þū ne canst awendan þafungword on þissum wiki.",
        "login": "Inmeldian",
        "nav-login-createaccount": "Inmeldian / wyrcan reccinge",
-       "loginprompt": "Þū scealt þafian cȳþþu grētunga tō inmeldienne in {{SITENAME}}.",
        "userlogin": "Inmeldian / wyrcan reccinge",
        "userloginnocreate": "Inmeldian",
        "logout": "Ūtmeldian",
        "filesource": "Fruma:",
        "badfilename": "Ymelan nama wearþ gewend tō \"$1\".",
        "savefile": "Hordian ymelan",
-       "uploadedimage": "forþhlōd \"[[$1]]\"",
        "sourcefilename": "Fruman ymelan nama:",
        "license": "Lēaf:",
        "license-header": "Lēaf:",
        "unwatch": "Ablinnan behealdunge",
        "unwatchthispage": "Ablinnan behealdunge",
        "watchlist-details": "{{PLURAL:$1|Þǣr is $1 tramet|Þǣr sind $1 trameta}} on þīnum behealdunggetæle, nā sunderlīce arīmedum mōtunga trametum.",
+       "wlnote": "Niðer {{PLURAL:$1|is sēo nīwoste andwendung|sind þā nīwostan '''$1''' andwendunga}} in {{PLURAL:$2|þǣre latostan tīde|þǣm latostan '''$2''' tīda}}, fram: $3, $4.",
        "wlshowlast": "Īwan þā nīwostan $1 tīda $2 daga $3",
        "watchlist-options": "Behealdungtæles cyras",
        "watching": "Behealdende...",
index 5fddefb..66d7617 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Angpradesh",
-                       "Vinitutpal"
+                       "Vinitutpal",
+                       "아라"
                ]
        },
        "tog-underline": " कड़ी अधोरेखित करना:",
@@ -15,7 +16,6 @@
        "tog-showtoolbar": "एडिट टूलबार दर्शाबॊ (जावास्क्रीप्ट)",
        "tog-editondblclick": "दू-बार क्लीक करी कॆ पन्ना संपादित करॊ (जावास्क्रीप्ट)",
        "tog-editsectiononrightclick": "विभाग शीर्षक पर दायाँ क्लीक करीकॆ संपादन करै के अनुमती दॆ (जावास्क्रीप्ट)",
-       "tog-rememberpassword": "इ कंप्यूटर पर हमरॊ लॉग-इन सूचना याद रखॊ (अधिकतम $1 {{PLURAL:$1|दिन|दिन}} लेली)",
        "tog-watchcreations": "हमरॊ तैयार करलॊ पन्ना हमरॊ ध्यानसूचीमॆं रखियै",
        "tog-watchdefault": "हमरॊ संपादित करलॊ पन्ना हमरॊ ध्यानसूचीमॆं रखियै",
        "tog-watchmoves": "हमरॊ हटैलॊ पन्ना हमरॊ ध्यानसूचीमॆं रखियै",
        "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-to": "ऐकरॊ बदला मॆं देलॊ पन्ना सीनी सॆं जुडलॊ पन्ना सीनी के बदलाव दिखलाबॊ",
        "upload": "फाईल अपलोड",
        "uploadlogpage": "अपलोड सूची",
-       "uploadedimage": "\"[[$1]]\" कॆ अपलोड करलॊ गेलै",
        "filehist": "फाइल के इतिहास",
        "filehist-help": "संचिका पुरानॊ समय में कैन्हॊ दिखै रहै इ जानै लेली वांछित दिनांक/समय पर चटका लगाबॊ.",
        "filehist-current": "मौजूदा",
        "booksources-go": "जा",
        "log": "लॉग सूची",
        "allpages": "सब्भे पन्ना",
-       "alphaindexline": "$1 सॆ $2 तलक",
        "prevpage": "पिछला पन्ना ($1)",
        "allpagesfrom": "देलॊ गेलॊ अक्षर सॆं आरंभ होयवाला लेख दर्शाबॊ:",
        "allpagesto": "ऐना समाप्त होय वाला पन्ना दिखाबॊ:",
index 23fb0e9..1d31cda 100644 (file)
        "preview": "عرض مسبق",
        "showpreview": "أظهر معاينة",
        "showdiff": "عرض التغييرات",
+       "blankarticle": "<strong>تنبيه:</strong> الصفحة التي تريد إنشاءها فارغة. إذا نقرت \"{{int:savearticle}}\" ثانية فستنشأ الصفحة بدون محتوى.",
        "anoneditwarning": "'''تحذير:''' لم تقم بالدخول.\nسيسجل عنوان الآيبي خاصتك في تاريخ هذه الصفحة.",
        "anonpreviewwarning": "''أنت غير مسجل الدخول. الحفظ سيسجل عنوان الأيبي الخاص بك في تاريخ هذه الصفحة.''",
        "missingsummary": "'''تنبيه:''' لم تقم بكتابة ملخص للتعديل.\nإذا قمت بضغط حفظ الصفحة مرة أخرى، فيتم حفظ تعديلك بدون ملخص.",
index 8d6b802..1a86697 100644 (file)
        "talkpagelinktext": "ܡܡܠܠܐ",
        "specialpage": "ܦܐܬܐ ܕܝܠܢܝܬܐ",
        "personaltools": "ܡܐܢ̈ܐ ܦܪ̈ܨܘܦܝܐ",
-       "postcomment": "ܡܢܬܐ ܚܕܬܐ",
        "articlepage": "ܚܘܝܝܐ ܕܦܐܬܐ ܕܚܒܝܫܬ̈ܐ",
        "talk": "ܡܡܠܠܐ",
        "views": "ܚܙܝܬ̈ܐ",
        "userlogin-signwithsecure": "ܐܚܫܚ ܕܒܝܩܘܬܐ ܡܫܝܢܢܬܐ",
        "login": "ܥܘܠ",
        "nav-login-createaccount": "ܥܘܠ / ܒܪܝ ܚܘܫܒܢܐ",
-       "loginprompt": "ܐܠܨܐ ܠܡܦܐܬܢܐ ܕܝܠܟ ܕܣܡܟ ܠܩܘܩܝܙ (cookies) ܠܥܠܠܬܐ ܒ {{SITENAME}}.",
        "userlogin": "ܥܘܠ / ܒܪܝ ܚܘܫܒܢܐ",
        "userloginnocreate": "ܥܘܠ",
        "logout": "ܦܠܘܛ",
        "minlength1": "ܫܡܗ̈ܐ ܕܠܦܦܐ ܘܠܐ ܕܢܗܘܐ ܒܪܝܐ ܡܢ ܐܬܘܬܐ ܚܕܐ ܟܕ ܙܥܘܪ",
        "uploadwarning": "ܐܣܩ ܙܘܗܪܐ",
        "savefile": "ܠܒܘܟ ܠܦܦܐ",
-       "uploadedimage": "ܐܣܩ \"[[$1]]\"",
-       "overwroteimage": "ܐܣܩ ܨܚܚܐ ܚܕܬܐ ܡܢ \"[[$1]]\"",
        "uploadvirus": "ܠܦܦܐ ܐܝܬ ܒܗ ܒܝܪܘܣ!\nܐܪ̈ܝܟܬܐ: $1",
        "upload-source": "ܡܒܘܥܐ ܕܠܦܦܐ",
        "sourcefilename": "ܫܡܐ ܕܠܦܦܐ ܡܒܘܥܐ",
        "unwatchthispage": "ܟܠܝ ܪܗܝܐ",
        "watchlist-details": "{{PLURAL:$1|$1 ܦܐܬܐ|$1 ܦܐܬܬ̈ܐ}} ܒܪ̈ܗܝܬܟ, ܫܒܘܩ ܡܢ ܦܐܬܬ̈ܐ ܕܡܡܠܠܐ.",
        "wlheader-showupdated": "ܦܐܬܬ̈ܐ ܕܐܫܬܚܠܦܢ ܡܢ ܒܬܪ ܣܘܥܪܢܐ ܐܚܪܝܐ ܠܗܝܢ ܡܬܓܠܚܢ ܒܣܪܛܐ '''ܚܠܝܡܐ'''",
+       "wlnote": "ܠܬܚܬ {{PLURAL:$1|ܫܘܚܠܦܐ ܐܚܪܝܐ| '''$1''' ܫܘܚܠܦ̈ܐ ܐܚܪ̈ܝܐ}} {{PLURAL:$2|ܒܫܥܬܐ ܐܚܪܝܬܐ|'''$2''' ܒܫܥܬ̈ܐ ܐܚܪ̈ܝܬܐ}}, ܠܦܘܬ $3, $4.",
        "wlshowlast": "ܚܘܝ $1 ܫܥܬ̈ܐ $2 ܝܘܡܬ̈ܐ ܐܚܪ̈ܝܐ $3",
        "watchlist-options": "ܨܒܝܢܝܘܬ̈ܐ ܕܪ̈ܗܝܬܐ",
        "watching": "ܪܗܝܐ...",
index c8a3bf9..4eb0a96 100644 (file)
        "remembermypassword": "Amulen tañi nülküwküleael tüfa mew (alürumechi $1 {{PLURAL:$1 antü}})",
        "login": "Konkülen",
        "nav-login-createaccount": "konkülen/dewman konün",
-       "loginprompt": "Müley \"Cookies\" ñi püneleael wirintukuwam {{SITENAME}} mew.",
        "userlogin": "Konkülen/dewman konün",
        "userloginnocreate": "Konün",
        "logout": "Tripan",
        "uploadnologin": "Petu konlaymi",
        "uploadlogpage": "Püramülu eltukawün ñi wirintukun",
        "filedesc": "Pichi trokiñündungu",
-       "uploadedimage": "Püramüngey \"[[$1]]\"",
        "watchthisupload": "Llaytun tüfachi eltukawün",
        "license": "Dungunentuwün:",
        "license-header": "Dungunentuwün",
index b8eaf38..770e261 100644 (file)
        "talkpagelinktext": "Ṫnaqeċ",
        "specialpage": "Ṣefḫa ĥaṣa",
        "personaltools": "Adawaṫ ċeĥṣiya",
-       "postcomment": "Seksyon jdida",
        "articlepage": "Ċof l-li fe ṣ-ṣefḫa",
        "talk": "Modakara",
        "views": "Afiċaj",
        "externaldberror": "kayn imma ċi ĥata' f-doĥol qaĝidaṫ l-bayanaṫ wlla rah ma msmoḫ-likċ baċ ṫḫddṫ l-ḫisab l-ĥariji taĝk.",
        "login": "Dĥel",
        "nav-login-createaccount": "Ṫkonékta / Ĥṫareĝ ċi konṫ",
-       "loginprompt": "ĥask tkon mĥddm l-cookies baċ ṫdĥol l-{{SITENAME}}.",
        "userlogin": "Ṫkonnékta / Ṣayeb ċi ḫsab",
        "userloginnocreate": "Ṫkonékta",
        "logout": "Ṫdékonékta",
        "searchprofile-advanced-tooltip": "qlleb ġi f-ċi nitaqaṫ",
        "search-result-size": "$1 ({{PLURAL:$2|kelma weḫda|$2 kelmaṫ}})",
        "search-result-category-size": "{{PLURAL:$1|ĝoḍw 1|$1 dl-aĝḍa'}} ({{PLURAL:$2|ṫṣnif fṛĝi 1|$2 d-ṫṣnifaṫ l-fṛĝiyya}}, {{PLURAL:$3|milef 1|$3 dl-milffaṫ}})",
-       "search-result-score": "lirtibat: $1%",
        "search-redirect": "(Ṫeḫwil $1)",
        "search-section": "(seksyon $1)",
        "search-suggest": "Waċ konṫi baġi ṫqol : $1",
        "uploadwarning": "tahdir rafaa",
        "uploadwarning-text": "afak bdl description dyal lmilaf ltaht ohawl awtani",
        "savefile": "sjjl had lfichier",
-       "uploadedimage": "øplowda \"[[$1]]\"",
-       "overwroteimage": "sift noskha jdida dyal \"[[$1]]\"",
        "uploaddisabled": "upload maatl",
        "copyuploaddisabled": "sift b URL makhdamch",
        "uploaddisabledtext": "sift dyal lfichier makhdamch",
        "duplicate-defaultsort": "'''ṫḫdir:''' saroṫ ṫrṫib fṫiṛaḍi \"$2\" faṫ saroṫ ṫrṫib fṫiṛaḍi \"$1\".",
        "version": "Noskha",
        "version-extensions": "limtidadat lmotabbata",
+       "version-skins": "skinat",
        "version-specialpages": "Ṣefḫa ĥaṣa",
        "version-parserhooks": "khatatif lmohllil",
        "version-variables": "lmotaghayyirat",
        "version-antispam": "wiqaya mn ṣ-ṣpam",
-       "version-skins": "skinat",
        "version-other": "okhra",
        "version-mediahandlers": "motahakkimat lmedia",
        "version-hooks": "lkhtatif",
index 63a7d9f..6f52b4a 100644 (file)
        "searchprofile-advanced-tooltip": "دور فى النطاقات المخصصة",
        "search-result-size": "$1 ({{PLURAL:$2|1 كلمه|$2 كلام}})",
        "search-result-category-size": "{{PLURAL:$1|لا أعضاء|عضو واحد|عضوين|$1 أعضاء|$1 عضوًا|$1 عضو}} ({{PLURAL:$2|لا تصانيف فرعية|تصنيف فرعى واحد|تصنيفين فرعيين|$2 تصنيفات فرعية|$2 تصنيف فرعى|$2 تصنيف فرعى}} و{{PLURAL:$3|لا ملفات|ملف واحد|ملفين|$3 ملفات|$3 ملف|$3 ملف}})",
-       "search-result-score": "الارتباط: $1%",
        "search-redirect": "(تحويله $1)",
        "search-section": "(جزء $1)",
        "search-suggest": "قصدك: $1",
        "uploadwarning": "تحذير التحميل",
        "uploadwarning-text": "لو سمحت عدل وصف الملف اللى تحت وحاول تانى.",
        "savefile": "حفظ الملف",
-       "uploadedimage": "اتحمل \"[[$1]]\"",
-       "overwroteimage": "اتحملت  نسخة جديدة من \"[[$1]]\"",
        "uploaddisabled": "التحميل متعطل",
        "uploaddisabledtext": "تحميل الملفات متعطل.",
        "php-uploaddisabledtext": "تحميل ملفات PHP متعطل. لو سمحت اتأكدن من إعدادات تحميل الملفات.",
        "watchlist-details": "{{PLURAL:$1|$1 صفحه|$1 صفحه}} فى قايمه مراقبتك، بدون عد صفحات المناقشه.",
        "wlheader-enotif": "*خاصية الاعلام بالايميل متفعلة",
        "wlheader-showupdated": "الصفحات اللى اتغيرت  بعد زيارتك ليها اخر مرة معروضة بالخط '''العريض'''",
+       "wlnote": "تحت فى {{PLURAL:$1|آخر تغيير|آخر '''$1''' تغيير}} فى آخر {{PLURAL:$2|ساعه|'''$2''' ساعه}}، من الوقت $3، $4.",
        "wlshowlast": "عرض اخر $1 ساعات $2 ايام $3",
        "watchlist-options": "اختيارات قايمة المراقبة",
        "watching": "بيراقب...",
index 1607c1f..4c63928 100644 (file)
        "talkpagelinktext": "কথা-বতৰা",
        "specialpage": "বিশেষ পৃষ্ঠা",
        "personaltools": "ব্যক্তিগত সৰঞ্জাম",
-       "postcomment": "নতুন অনুচ্ছেদ",
        "articlepage": "সমল পৃষ্ঠা চাওক",
        "talk": "আলোচনা",
        "views": "দৰ্শন",
        "externaldberror": "কোনো প্ৰামাণ্যকৰণ তথ্যকোষৰ ত্ৰুটি ঘটিছে নতুবা আপোনাৰ বৰ্হি-একাউণ্ট নৱীকৰণ কৰাৰ অনুমতি নাই ।",
        "login": "প্ৰৱেশ",
        "nav-login-createaccount": "প্ৰৱেশ/সদস্যভুক্তি",
-       "loginprompt": "{{SITENAME}}ত প্ৰৱেশ কৰিবলৈ আপুনি কুকিজ্ সক্ৰিয় থাকিব লাগিব।",
        "userlogin": "প্ৰৱেশ/সদস্যভুক্তি",
        "userloginnocreate": "প্ৰৱেশ",
        "logout": "প্ৰস্থান",
        "searchprofile-advanced-tooltip": "স্বনিৰ্ধাৰিত নামস্থানত অনুসন্ধান কৰক",
        "search-result-size": "$1 ({{PLURAL:$2|1 শব্দ|$2 শব্দসমূহ}})",
        "search-result-category-size": "{{PLURAL:$1|১ জন সদস্য|$1 জন সদস্য}} ({{PLURAL:$2|এটা উপশ্ৰেণী|$2 টা উপশ্ৰেণী}}, {{PLURAL:$3|এটা ফাইল|$3 টা ফাইল}})",
-       "search-result-score": "যথাৰ্থতা: $1%",
        "search-redirect": "(পুনৰ্নিৰ্দেশনা $1)",
        "search-section": "(অনুচ্ছেদ $1)",
        "search-file-match": "(ফাইলৰ বিষয়বস্তুৰ লগত মিল পোৱা গৈছে)",
        "uploadwarning": "আপল’ড সতৰ্কবাণী",
        "uploadwarning-text": "অনুগ্ৰহ কৰি তলত ফাইলৰ বিৱৰণী পৰিৱৰ্তন কৰক আৰু পুনৰ চেষ্টা কৰক ।",
        "savefile": "সংৰক্ষণ",
-       "uploadedimage": "\"[[$1]]\" আপল’ড কৰা হ’ল",
-       "overwroteimage": "\"[[$1]]\" ৰ এটা নতুন সংস্কৰণ আপল’ড কৰা হৈছে",
        "uploaddisabled": "আপল’ড নিষ্ক্ৰিয় হৈ আছে",
        "copyuploaddisabled": "ইউ.আৰ.এল.ৰ মাধ্যমেৰে আপল’ড নিষ্ক্ৰিয় হৈ আছে ।",
        "uploaddisabledtext": "ফাইল আপল’ড নিষ্ক্ৰিয় হৈ আছে ।",
        "watchlist-details": "আলোচনা পৃষ্ঠাসমূহ বেলেগকৈ লেখত নধৰি {{PLURAL:$1|$1 টা পৃষ্ঠা}} আপোনাৰ লক্ষ্য-তালিকাত আছে।",
        "wlheader-enotif": "ইমেইল জাননী সক্ৰিয় কৰা হৈছে।",
        "wlheader-showupdated": "আপোনাৰ শেষ পৰিদৰ্শনৰ পিছত সলনি হোৱা পৃষ্ঠাসমূহ '''গাঢ়''' আখৰত দেখুওৱা হৈছে।",
-       "wlnote2": "$2, $3 অনুসাৰে শেষ {{PLURAL:$1|ঘণ্টাৰ|<strong>$1</strong> ঘণ্টাৰ}} সালসলনি তলত দিয়া হৈছে।",
+       "wlnote": "তলত {{PLURAL:$1| হ'ল সৰ্বশেষ পৰিৱৰ্তন|হ'ল সৰ্বশেষ '''$1''' পৰিৱৰ্তনসমূহ}} সৰ্বশেষ {{PLURAL:$2|ঘন্টা|'''$2''' ঘন্টা}}, $3, $4 -ৰ হিচাপে।",
        "wlshowlast": "যোৱা $1 ঘণ্টা $2 দিন $3 চাওক",
        "watchlist-options": "লক্ষ্য-তালিকা পছন্দসমূহ",
        "watching": "চকু দিয়া হৈছে.....",
index b56b425..dfb04a9 100644 (file)
        "delete-edit-reasonlist": "Editar los motivos d'esborráu",
        "delete-toobig": "Esta páxina tien un historial d'ediciones grande, más de $1 {{PLURAL:$1|revisión|revisiones}}.\nRestrinxóse l'esborráu d'estes páxines pa evitar perturbaciones accidentales de {{SITENAME}}.",
        "delete-warning-toobig": "Esta páxina tien un historial d'ediciones grande, más de $1 {{PLURAL:$1|revisión|revisiones}}.\nEsborralu pue perturbar les operaciones de la base de datos de {{SITENAME}};\nobra con precaución.",
+       "delete-cantedit": "Nun pues desaniciar esta páxina porque nun tienes permisu pa editala.",
        "deleting-backlinks-warning": "'''Avisu:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Otres páxines]] enllacen a, o trescluyen de, la páxina que ta a piques de desaniciar.",
        "rollback": "Revertir ediciones",
        "rollback_short": "Revertir",
index 7956331..a8c72d1 100644 (file)
        "talkpagelinktext": "Keyaksera",
        "specialpage": "Aptafu bu",
        "personaltools": "Weltafa xeka",
-       "postcomment": "Warzaf gabot",
        "articlepage": "Telizwira",
        "talk": "Keyaksera",
        "views": "Wira",
        "externaldberror": "Ont divefa origakrokla va pilkomodara ont va rinafa divefa pata me ronuskel.",
        "login": "Pilkomodá",
        "nav-login-createaccount": "Pataredú oke va int dogluyá",
-       "loginprompt": "Ta dogluyara va {{SITENAME}} va koti \"cookie\" talpeyki gotutegiral.",
        "userlogin": "Va int dogluyá / pataredú",
        "userloginnocreate": "Dogluyara",
        "logout": "Dimgluyá",
        "searchprofile-advanced-tooltip": "Aneyara ko pilkovafo yoltxo",
        "search-result-size": "$1 ({{PLURAL:$2|1 trogarn|$2 trogarn}})",
        "search-result-category-size": "{{PLURAL:$1|1 bewik|$1 bewik}} ({{PLURAL:$2|1 volveyloma|$2 volveyloma}}, {{PLURAL:$3|1 iyeltak|$3 iyeltak}})",
-       "search-result-score": "Vadjereka : $1%",
        "search-redirect": "(graskara va $1)",
        "search-section": "($1 gabot)",
        "search-suggest": "Va $1 sugdalayal ?",
        "file-exists-duplicate": "Bat iyeltak tir jontolaca ke {{PLURAL:$1|iyeltak|iyeltak}}:",
        "uploadwarning": "Obral !",
        "savefile": "Giwara va iyeltak",
-       "uploadedimage": "« [[$1]] » ksudayan mo zanisiko",
-       "overwroteimage": "kalvajayan siatos ke \"[[$1]]\"",
        "uploaddisabled": "Skalev, staksera va iyeltak tir gritegirayan.",
        "uploaddisabledtext": "Iyeltakkalvajara tir gritegirayana.",
        "uploadscripted": "Bat iyeltak va HTML ok Script beksa rotir narujutuna gan web exulesiki ruldar.",
        "watchlist-details": "{{PLURAL:$1|$1 bu|$1 bu}} koe rinafi suzdasiki rade prilarabueem.",
        "wlheader-enotif": "Email walzera tir tegisa.",
        "wlheader-showupdated": "Bu betayanu vielu rin ironokon worayal tir '''sulatcalakorafu'''.",
+       "wlnote": "Vleveon tid tela '''$1''' ironokafa betara mali '''$2''' ironokaf bartiv.",
        "wlshowlast": "Nedira va ironokaf $1 bartiv isu $2 viel isu $3",
        "watchlist-options": "Suzdasikiolkeem",
        "watching": "Nedis...",
index b3cf3a2..0b75926 100644 (file)
        "mainpage": "Ana Səhifə",
        "mainpage-description": "Ana Səhifə",
        "policy-url": "Project:Qaydalar",
-       "portal": "Kənd meydanı",
+       "portal": "İctimai portal",
        "portal-url": "Project:Kənd meydanı",
        "privacy": "Məxfilik siyasəti",
        "privacypage": "Project:Gizlilik prinsipi",
        "searchprofile-advanced-tooltip": "Ad aralığında axtar",
        "search-result-size": "$1 ({{PLURAL:$2|1 söz|$2 söz}})",
        "search-result-category-size": "{{PLURAL:$1|$1 element|$1 elementlər}} ({{PLURAL:$2|$2 alt kateqoriya|$2 alt kateqoriyalar}}, {{PLURAL:$3|$3 fayl|$3 fayllar}})",
-       "search-result-score": "Uyğunluq: $1%",
        "search-redirect": "(yönləndirmə $1)",
        "search-section": "(bölmə $1)",
        "search-suggest": "Bəlkə, bunu nəzərdə tuturdunuz: $1",
        "fileexists-extension": "Bu adda başqa bir fayl mövcuddur: [[$2|thumb]]\n* Yüklənilən faylın adı: <strong>[[:$1]]</strong>\n* Mövcud faylın adı: <strong>[[:$2]]</strong>\nXahiş edirik, başqa ad seçin.",
        "uploadwarning": "Yükləmə xəbərdarlığı",
        "savefile": "Faylı qeyd et",
-       "uploadedimage": "\"[[$1]]\" yükləndi",
-       "overwroteimage": "\"[[$1]]\"-in yeni versiyası yükləndi",
        "uploaddisabled": "Yükləmə baş tutmadı",
        "copyuploaddisabled": "URL-dən yükləmə baş tutmadı.",
        "uploaddisabledtext": "Fayl yüklənməsi baş tutmadı.",
index 7361191..e72d941 100644 (file)
        "talkpagelinktext": "دانیشیق",
        "specialpage": "اؤزل صحیفه",
        "personaltools": "شخصی آراجلار",
-       "postcomment": "يئنی بؤلوم",
        "articlepage": "ایچری‌لی صحیفه‌یه باخ",
        "talk": "دانیشیق",
        "views": "گؤرونوشلر",
        "externaldberror": "بیر دیتابیس دوغرولاما خطاسی اولدو، یوخسا سیزین ائشیک حسابینیزی گونجل‌لدمگه ایجازه‌نیز یوخدور.",
        "login": "گیریش",
        "nav-login-createaccount": "گیریش / حساب یاراد",
-       "loginprompt": "{{SITENAME}} سایتینا گیریش اوچون، کوکی‌لره ایجازه وئرمک لازیم‌دیر.",
        "userlogin": "گیریش / حساب یاراد",
        "userloginnocreate": "گیریش",
        "logout": "چیخیش",
        "searchprofile-advanced-tooltip": "تاپشیریلان آدفضالاریندا آختار",
        "search-result-size": "$1 ({{PLURAL:$2|۱ سؤزجوک|$2 سؤزجوک}})",
        "search-result-category-size": "{{PLURAL:$1|بیر|$1}} عوضو ({{PLURAL:$2|بیر|$}} آلت‌بؤلمه، {{PLURAL:$3|بیر|$3}} فایل)",
-       "search-result-score": "اویغونلوق: $1٪",
        "search-redirect": "یول‌لاندیرما $1",
        "search-section": "(بؤلوم $1)",
        "search-suggest": "بونو نظرده توتوردونوزمو: $1",
        "uploadwarning": "يوکله‌مه خبردارلیغی",
        "uploadwarning-text": "خاهیش ائدیریک آشاغی‌داکی فایل شرحینی دییش‌دیرین و یئنی‌دن جهد ائدین.",
        "savefile": "فايلی قئيد ائت",
-       "uploadedimage": "«[[$1]]» یوکلندی",
-       "overwroteimage": "\"[[$1]]\"-این یئنی نوسخه سی یوکلندی",
        "uploaddisabled": "يوکله‌مه باش توتمادی",
        "copyuploaddisabled": "اینترنت آدرسی ایله یوکلمه باش توتمادی.",
        "uploaddisabledtext": "فايل يوکلنمه‌سی باش توتمادی.",
        "watchlist-details": "دانیشیق صفحه‌لرینی سایمایاراق، {{PLURAL:$1|$1 صفحه‌نی}} ایزله‌ییرسینیز.",
        "wlheader-enotif": "ایمیل ایله بیلدیریش آچیلیب‌دیر.",
        "wlheader-showupdated": "سون گؤروشونوزدن سونرا ائدیلن دییشیکلیکلر '''قالین''' گؤستریلیبدیلر.",
+       "wlnote": "آشاغیداکی {{PLURAL:$1|'''$1''' ديَیشیک‌لیک|'''$1'''ديَیشیک‌لیک}}  سون {{PLURAL:$2|ساعتدا|'''$2''' ساعتدا}} ائدیلمیشدیر.$3، $4",
        "wlshowlast": "سون $1 ساعات $2 گون گؤستر $3",
        "watchlist-options": "ایزله‌دیکلر سئچمه‌لری",
        "watching": "ایزله‌نیلیر...",
        "duplicate-defaultsort": "'''دیقت:''' احتیمال ائدیلن «$2» دفالت آچاری، قاباقکی «$1» دفالت آچارینی گئچرسیز ائدیر.",
        "version": "نوسخه‌",
        "version-extensions": "قورولموش گنیشلندیرمه‌لر",
+       "version-skins": "قابیقلار",
        "version-specialpages": "اؤزل صحیفه‌لر",
        "version-parserhooks": "آیریشدیران چنگل‌لری",
        "version-variables": "دَییشینلر",
        "version-antispam": "اِسپم اؤنله‌مه",
-       "version-skins": "قابیقلار",
        "version-other": "آیری",
        "version-mediahandlers": "مئدیا ایشلدنلری",
        "version-hooks": "چنگل‌لر",
index 4e2de7b..b92e7b6 100644 (file)
        "searchprofile-advanced-tooltip": "Махсус исем арауыҡтарында эҙләргә",
        "search-result-size": "$1 ({{PLURAL:$2|1=$2 һүҙ|$2 һүҙ}})",
        "search-result-category-size": "{{PLURAL:$1|1=$1 ағза}} ({{PLURAL:$2|$2 эске категория}}, {{PLURAL:$3|$3 файл}})",
-       "search-result-score": "Тап килеүсәнлек: $1%",
        "search-redirect": "(йүнәлтеү $1)",
        "search-section": "($1 бүлеге)",
        "search-suggest": "Бәлки, ошоно эҙләйһегеҙҙер: $1",
        "uploadwarning": "Киҫәтеү",
        "uploadwarning-text": "Зинһар, түбәндәге файл тасуирламаһын үҙгәртегеҙ һәм яңынан ҡабатлап ҡарағыҙ.",
        "savefile": "Һөҙгөстө яҙҙырып ҡуйырға",
-       "uploadedimage": "«[[$1]]» тейәлгән",
-       "overwroteimage": "\"[[$1]]\" файлының яңы өлгөһө тейәлде",
        "uploaddisabled": "Тейәү рөхсәт ителмәй",
        "copyuploaddisabled": "URL адрес аша тейәү рөхсәт ителмәй.",
        "uploaddisabledtext": "Файлдар тейәү рөхсәт ителмәй.",
        "watchlist-details": "Һеҙҙең күҙәтеү исемлегегеҙҙә, фекерләшеү биттәрен һанамағанда, {{PLURAL:$1|$1 бит}} бар.",
        "wlheader-enotif": "Электрон почта аша белдереү индерелгән.",
        "wlheader-showupdated": "Һеҙҙең аҙаҡҡы кереүегеҙҙән һуң үҙгәргән биттәр '''ҡалын''' шрифт менән күрһәтелгән.",
+       "wlnote": "Түбәндә $3 $4 ваҡытына тиклем аҙаҡҡы {{PLURAL:$2|1=сәғәт|'''$2''' сәғәт}} эсендә эшләнгән {{PLURAL:$1|1=үҙгәртеү|'''$1''' үҙгәртеү}} күрһәтелгән.",
        "wlshowlast": "Һуңғы $1 сәғәт $2 көн өсөн күрһәт $3",
        "watchlist-options": "Күҙәтеү исемлеге көйләүҙәре",
        "watching": "Күҙәтеү исемлегенә өҫтәү...",
index f8947bb..4ebcf4a 100644 (file)
        "emptyfile": "Dé aufféglooderne Daatei is laar. Da Grund kauh a Tippfeeler im Daateinaum seih. Bittscheh kóntróllier, ób du dé Daatei wirklé aufféloon wüst.",
        "uploadwarning": "Ówocht",
        "savefile": "Daatei speichern",
-       "uploadedimage": "hod „[[$1]]“ affeglodn",
        "uploaddisabled": "'s aufféloon is deaktivierd",
        "uploadscripted": "Dé Datei enthoit HTML- óder Scriptcode, der wos irrtymlicherweis voram Webbrowser ausgfyrd wern kunnterd.",
        "uploadvirus": "Dé Daatei do enthoitt a Virus! Details: $1",
        "watchlist-details": "Du beoochst {{PLURAL:$1|$1 Seitn}}, Dischkriaseitn ned mitgrechnad",
        "wlheader-enotif": "Da E-Mail-Benoochrichtigungsdeanst is aktivierd.",
        "wlheader-showupdated": "Seiten mid noh néd gseengne Änderrungen wern '''fett''' dorgstöd.",
+       "wlnote": "Es {{PLURAL:$1|fóigt d' létzde Änderrung|fóing d' létzden '''$1''' Änderrungen}} voh da/dé {{PLURAL:$2|Stund| '''$2''' Stunden}}. Staund: $3, $4 Uar.",
        "wlshowlast": "Zoag dé Änderrungen voh dé létzden $1 Stunden, $2 Dog óder $3 (in dé létzden 30 Dog).",
        "watchlist-options": "Mei Beobochta: Optiona",
        "watching": "Beówochten ...",
index 96ab52c..829e636 100644 (file)
@@ -10,7 +10,8 @@
                        "WBT003Bugari",
                        "WBT004Togu",
                        "WBT006Hendra",
-                       "WBT009Anju"
+                       "WBT009Anju",
+                       "아라"
                ]
        },
        "tog-underline": "Ondolhon panait",
        "qbmyoptions": "Alaman niiba",
        "faq": "FAQ",
        "faqpage": "Project:FAQ",
-       "vector-action-addsection": "Bagian na imbaru",
-       "vector-action-delete": "Sesa",
-       "vector-action-move": "Pahusor",
-       "vector-action-protect": "Ramoti",
-       "vector-action-undelete": "unang sesa",
-       "vector-action-unprotect": "Uba parlindungan",
-       "vector-view-create": "Tompa",
-       "vector-view-edit": "Paubah",
-       "vector-view-history": "Patudu andorang na",
-       "vector-view-view": "Jaha",
-       "vector-view-viewsource": "Ida haroanna",
        "actions": "Pangulahonon",
        "namespaces": "Inganan ni goar",
        "variants": "Angka ragam",
        "talkpage": "Hatahon alaman on",
        "talkpagelinktext": "Pangkataion",
        "personaltools": "Ula-ula ni sasahalak",
-       "postcomment": "Bagian imbaru",
        "talk": "Panghataion",
        "views": "Hataridaan",
        "toolbox": "Poti ulaula",
        "nstab-help": "Alaman pangurupion",
        "nstab-category": "Kategori",
        "error": "Hasesega",
-       "fileappenderror": "Ndang boi pamasuhon \"$1\" tu \"$2\".",
        "badarticleerror": "Ulaon on dang boi i ulahon di alaman on",
        "cannotdelete-title": "Ndang boi manesa alaman \"$1\"",
        "badtitle": "Ulu ni surat na rumar",
        "password-change-forbidden": "Ndang boi ubaonmu hata hincu di wiki on",
        "login": "Bongot tu log",
        "nav-login-createaccount": "Bongot tu log/ bahen akun",
-       "loginprompt": "Ikkon dipangolu do \"cookies\" laho bongot log tu {{SINTENAME}}.",
        "userlogin": "Bongot tu log/ bahen akun",
        "userlogout": "Haruar log",
        "userlogin-noaccount": "Ndang adong akun",
        "searchmenu-exists": "'''Adong sada alaman na digoari \"[[:$1]]\" di wiki on.'''",
        "searchmenu-new": "'''Bahen alaman \"[[:$1]]\" di wiki on!'''",
        "searchprofile-articles": "Alaman isi",
-       "searchprofile-project": "Alaman pangurupion dohot proyek",
        "searchprofile-images": "Akat na godang gunana",
        "searchprofile-everything": "Sasude",
        "searchprofile-advanced": "Timbul",
        "searchprofile-articles-tooltip": "Mandiori di $1",
-       "searchprofile-project-tooltip": "Mandiori di $1",
        "searchprofile-images-tooltip": "Mandiori berkas",
        "searchprofile-everything-tooltip": "Mandiori di sude inganan (dohot di alaman panghataion)",
        "searchprofile-advanced-tooltip": "Mandiori pake inganan ni goar",
        "recentchanges-label-minor": "Sada panotaan na metmet",
        "recentchanges-label-bot": "Panotaan on diulahon bot",
        "recentchanges-label-unpatrolled": "Panotaan on ndang dipamanat dope",
-       "rclistfrom": "Patuduhon parubaan na imbaru mamungka sian $1",
+       "rclistfrom": "Patuduhon parubaan na imbaru mamungka sian $3 $2",
        "rcshowhideminor": "$1 panotaan na metmet",
        "rcshowhidebots": "$1 bot",
        "rcshowhideliu": "$1 pamarhaseang bongot tu log",
        "booksources-go": "Torushon",
        "log": "Angka log",
        "allpages": "Sude alaman",
-       "alphaindexline": "$1 tu $2",
        "allarticles": "Sude alaman",
        "allpagessubmit": "Torushon",
        "categories": "Angka horong",
index 8f0e7d1..87ea98d 100644 (file)
@@ -9,7 +9,8 @@
                        "ZxxZxxZ",
                        "아라",
                        "RigiMahnoor",
-                       "Oldstoneage"
+                       "Oldstoneage",
+                       "Baloch Afghanistan"
                ]
        },
        "tog-underline": ":لینکانآ خط کش",
        "hidetoc": "پناه کن",
        "collapsible-collapse": "چیر داتن",
        "collapsible-expand": "تچک کتن",
+       "confirmable-confirm": "آیا {{GENDER:$1|شما}} مطمعین ویت?",
+       "confirmable-yes": "هان",
+       "confirmable-no": "نه",
        "thisisdeleted": "به گند یا پچ ترین $1?",
        "viewdeleted": "به گند $1?",
        "restorelink": "{{PLURAL:$1|یک حذف اصلاح|$1 حذف اصلاح}}",
        "searchprofile-advanced-tooltip": "گردگ ته نام فضایان دل واه",
        "search-result-size": "$1 ({{PLURAL:$2|1کلمه|$2 کلمات}})",
        "search-result-category-size": "{{PLURAL:$1|یک عضو|$1 عضو}} ({{PLURAL:$2|یک جهلرده|$2 جهلرده}}، {{PLURAL:$3|یک فایل|$3 فایل}})",
-       "search-result-score": "ربط: $1%",
        "search-redirect": "(غیر مستقیم $1 )",
        "search-section": "(بخش $1 )",
        "search-file-match": "(فایلء محتواء همجندی)",
        "file-deleted-duplicate": "یک فایلی په داب ای فایل ([[:$1]]) پیسرتر حذف بوتگت. شما بایدن تاریح حذف آ فایلء دگه بچاریت",
        "uploadwarning": "هوژاری آپلود",
        "savefile": "ذخیره فایل",
-       "uploadedimage": "اپلود بوت \"[[$1]]\"",
-       "overwroteimage": "یک نوکین نسخه چه \"[[$1]]\" آپلود بیتت",
        "uploaddisabled": "آپ.د غبر فعال انت",
        "uploaddisabledtext": "آپلود فایل غیر فعال انت.",
        "php-uploaddisabledtext": "آپلود کتن فایل ته پی‌اچ‌پی فعال نهنت. تنظیم file_uploads کنترل کنیت.",
        "watchlist-details": "{{PLURAL:$1|$1 صفحه|$1 صفحات}} چارتگ بیت صفحات گپ حساب نه بیگن",
        "wlheader-enotif": "اخطار ایمیل فعالنت.",
        "wlheader-showupdated": "صفحات که عوض بوتگنت چه شمی آهری چارتن '''پررنگ''' پیش دراگ بنت.",
+       "wlnote": "جهلء {{PLURAL:$1|آهرین تغییر هست|آهرین هست'''$1''' تغییرات}} ته آهرین {{PLURAL:$2|ساعت|'''$2''' ساعات}}.",
        "wlshowlast": "پیش دار آهرین $1  ساعات $2 روچان $3",
        "watchlist-options": "گزینه یان لیست چارگ",
        "watching": "چارگ بین",
        "delete-edit-reasonlist": "اصلاح کن دلایل حذفء",
        "delete-toobig": "صفحهء یک مزنین تاریح اصلاحی هست گیشتر چه $1 {{PLURAL:$1|بازبینی|بازبینی}}.\nحذف چوشین صفحات په خاظر جلو گر چه ناگهانی اتفاق ته سایت {{SITENAME}} ممنوع بوتت.",
        "delete-warning-toobig": "ای صفحه  مزنین تاریح اصلاح هست، گیش چه  $1 {{PLURAL:$1|بازبینی|بازبینی}}.\nحذف آی شاید کار دیتابیس  {{SITENAME}} قطع کنت؛\nگون اخطار پیش روت.",
+       "delete-cantedit": "شما نه توانیت ای صپحا پاک کنیت بی خاطیریکه شما اجازه نداریت آیرا ایڈیت کنیت.",
        "rollback": "پشت ترگ اصلاحات",
        "rollback_short": "پشتررگ",
        "rollbacklink": "عقب ترگ",
        "expand_templates_ok": "هوبنت",
        "expand_templates_remove_comments": "بزور نظرات",
        "expand_templates_generate_xml": "پیش دار درچک تجزیه XMLء",
-       "expand_templates_preview": "بازبین"
+       "expand_templates_preview": "بازبین",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (پعال)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''غیر پعال''')"
 }
index 5030c0d..1448030 100644 (file)
        "searchprofile-advanced-tooltip": "Maghanap nin pankustombreng espasyong-ngaran",
        "search-result-size": "$1 ({{PLURAL:$2|1 tatarámon|$2 mga tatarámon}})",
        "search-result-category-size": "{{PLURAL:$1|1 miyembro|$1 mga miyembro}} ({{PLURAL:$2|1 subkategorya|$2 mga subkategorya}}, {{PLURAL:$3|1 sagunson|$3 mga sagunson}})",
-       "search-result-score": "Relebansiya: $1%",
        "search-redirect": "(Panukdong otro $1)",
        "search-section": "(Seksyon $1)",
        "search-suggest": "Boot mong ipakahulugan: $1",
        "uploadwarning": "Patanid sa pagkarga",
        "uploadwarning-text": "Pakibaguha tabi an deskripsyon kan sagunson sa ibaba asin paki-otroha giraray.",
        "savefile": "Itagama an ''file''",
-       "uploadedimage": "ipinagkarga na \"[[$1]]\"",
-       "overwroteimage": "kinarga an bagong bersión kan \"[[$1]]\"",
        "uploaddisabled": "Pigpopondó an mga pagkargá",
        "copyuploaddisabled": "An pagkarga sa paagi kan kilyawan pinagpondo.",
        "uploaddisabledtext": "An pagkarga kan mga sagunson pinagpondo tabi.",
        "watchlist-details": "{{PLURAL:$1|$1 pahina|$1 mga pahina}} sa saimong bantay-listahan, dae binibilang an mga pahina nin orolayan.",
        "wlheader-enotif": "E-surat na paisi pinagpaandar na.",
        "wlheader-showupdated": "Mga pahina na pinagriliwat poon kaidtong huri kang nagbisita sainda ipinapatanaw na '''mahîbog'''",
+       "wlnote": "Sa ibaba an {{PLURAL:$1|huring pagbabago|mga huring '''$1''' pagbabago}} sa nakaaging {{PLURAL:$2|oras|'''$2''' mga oras}}, magpoon pa kan $3, $4.",
        "wlshowlast": "Ipahilíng an nakaaging $1 na mga oras mga $2 na aldaw $3",
        "watchlist-options": "Bantay-listahan na mga pagpipilian",
        "watching": "Pigbabantayan...",
index be41a2d..b921a7a 100644 (file)
        "invalidtitle-knownnamespace": "Няслушная назва ў прасторы «$2»: «$3»",
        "invalidtitle-unknownnamespace": "Няслушная назва ў невядомай прасторы $1: «$2»",
        "exception-nologin": "Вы не ўвайшлі ў сыстэму",
-       "exception-nologin-text": "Неабходна [[Special:Userlogin|ўвайсьці]], каб атрымаць доступ да гэтай старонкі або дзеяньня.",
+       "exception-nologin-text": "Неабходна ўвайсьці, каб атрымаць доступ да гэтай старонкі або дзеяньня.",
        "exception-nologin-text-manual": "Неабходна $1, каб мець доступ да гэтай старонкі або дзеяньня.",
        "virus-badscanner": "Няслушная канфігурацыя: невядомы антывірусны сканэр: ''$1''",
        "virus-scanfailed": "памылка сканаваньня (код $1)",
        "parser-template-recursion-depth-warning": "Перавышана мяжа глыбіні рэкурсіі шаблёнаў ($1)",
        "language-converter-depth-warning": "Перавышанае абмежаваньне глыбіні канвэртару варыянтаў мовы ($1)",
        "node-count-exceeded-category": "Старонкі зь перавышанай колькасьцю вузлоў",
-       "node-count-exceeded-category-desc": "Ð\9aаÑ\82Ñ\8dгоÑ\80Ñ\8bÑ\8f Ð´Ð»Ñ\8f Ñ\81Ñ\82аÑ\80онак, Ð½Ð° Ñ\8fкÑ\96Ñ\85 Ð¿ÐµÑ\80авÑ\8bÑ\88аная колькасьць вузлоў.",
+       "node-count-exceeded-category-desc": "Ð\9dа Ñ\81Ñ\82аÑ\80онÑ\86Ñ\8b Ð¿ÐµÑ\80авÑ\8bÑ\88анаÑ\8f Ð¼Ð°ÐºÑ\81Ñ\8bмалÑ\8cная колькасьць вузлоў.",
        "node-count-exceeded-warning": "Старонка перавысіла дазволеную колькасьць вузлоў",
        "expansion-depth-exceeded-category": "Старонкі зь перавышанай глыбінёй уключэньня",
-       "expansion-depth-exceeded-category-desc": "Ð\93Ñ\8dÑ\82а ÐºÐ°Ñ\82Ñ\8dгоÑ\80Ñ\8bÑ\8f Ð´Ð»Ñ\8f Ñ\81Ñ\82аÑ\80онак, Ð´Ð·Ðµ Ð¿ÐµÑ\80авÑ\8bÑ\88анаÑ\8f Ð³Ð»Ñ\8bбÑ\96нÑ\8f раскрыцьця.",
+       "expansion-depth-exceeded-category-desc": "СÑ\82аÑ\80онка Ð¿ÐµÑ\80авÑ\8bÑ\88ае Ð¼Ð°ÐºÑ\81Ñ\8bмалÑ\8cнÑ\83Ñ\8e Ð³Ð»Ñ\8bбÑ\96нÑ\8e раскрыцьця.",
        "expansion-depth-exceeded-warning": "Старонка перавысіла дазволеную глыбіню ўключэньняў",
        "parser-unstrip-loop-warning": "Вызначаная незачыненая пятля",
        "parser-unstrip-recursion-limit": "Перавышанае абмежаваньне глыбіні рэкурсіі ($1)",
        "preferences": "Налады",
        "mypreferences": "Налады",
        "prefs-edits": "Колькасьць рэдагаваньняў:",
-       "prefsnologintext2": "Ð\9dеабÑ\85одна $1, каб зьмяніць вашыя налады.",
+       "prefsnologintext2": "Ð\9aалÑ\96 Ð»Ð°Ñ\81ка, Ñ\83вайдзÑ\96Ñ\86е Ñ\9e Ñ\81Ñ\8bÑ\81Ñ\82Ñ\8dмÑ\83, каб зьмяніць вашыя налады.",
        "prefs-skin": "Афармленьне",
        "skin-preview": "Папярэдні прагляд",
        "datedefault": "Па змоўчаньні",
        "trackingcategories-desc": "Крытэр уключэньня ў катэгорыю",
        "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": "Ð\9fаÑ\81Ñ\8cлÑ\8f Ñ\80аÑ\81кÑ\80Ñ\8bÑ\86Ñ\8cÑ\86Ñ\8f Ð°Ñ\80гÑ\83мÑ\8dнÑ\82Ñ\83 Ñ\88аблÑ\91нÑ\83 (неÑ\88Ñ\82а Ñ\9e Ñ\82Ñ\80айнÑ\8bÑ\85 Ð´Ñ\83жкаÑ\85, Ð½Ð°Ð¿Ñ\80Ñ\8bклад, <code>{{{Foo}}}</code>), Ñ\81Ñ\82аÑ\80онка Ð¿ÐµÑ\80авÑ\8bÑ\88ае Ð¿Ð°Ð¼ÐµÑ\80 <code>$wgMaxArticleSize</code>.",
-       "expensive-parserfunction-category-desc": "На старонцы ўжываецца зашмат рэсурсаёмістых функцыяў парсэру (такіх, як <code>#ifexist</code>). Глядзіце [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "post-expand-template-inclusion-category-desc": "Памер старонкі перавысіў <code>$wgMaxArticleSize</code> пасьля разгортваньня ўсіх шаблёнаў, таму некаторыя шаблёны не былі паказаныя цалкам.",
+       "post-expand-template-argument-category-desc": "СÑ\82аÑ\80онка Ð¿ÐµÑ\80авÑ\8bÑ\88ае Ð¿Ð°Ð¼ÐµÑ\80 <code>$wgMaxArticleSize</code> Ð¿Ð°Ñ\81Ñ\8cлÑ\8f Ñ\80аÑ\81кÑ\80Ñ\8bÑ\86Ñ\8cÑ\86Ñ\8f Ð°Ñ\80гÑ\83мÑ\8dнÑ\82Ñ\83 Ñ\88аблÑ\91нÑ\83 (неÑ\88Ñ\82а Ñ\9e Ñ\82Ñ\80айнÑ\8bÑ\85 Ð´Ñ\83жкаÑ\85, Ð½Ð°Ð¿Ñ\80Ñ\8bклад, <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "На старонцы ўжываецца зашмат рэсурсаёмістых функцыяў парсэру (такіх, як <code>#ifexist</code>). Глядзіце [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Інструкцыя:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Катэгорыя дадаецца, калі старонка ўтрымлівае няслушную спасылку на файл (спасылку на файл, які не існуе).",
        "hidden-category-category-desc": "Гэта катэгорыя з дададзенай меткай <code><nowiki>__HIDDENCAT__</nowiki></code> у ёй, што па змоўчаньні не адлюстроўвае яе на старонках у сьпісе катэгорыяў.",
        "trackingcategories-nodesc": "Апісаньне адсутнічае.",
        "delete-edit-reasonlist": "Рэдагаваць прычыны выдаленьня",
        "delete-toobig": "Гэтая старонка мае доўгую гісторыю рэдагаваньняў, болей за $1 {{PLURAL:$1|вэрсію|вэрсіі|вэрсіяў}}.\nВыдаленьне такіх старонак было забароненае, каб пазьбегнуць праблемаў у працы {{GRAMMAR:родны|{{SITENAME}}}}.",
        "delete-warning-toobig": "Гэтая старонка мае доўгую гісторыю рэдагаваньняў, больш за $1 {{PLURAL:$1|вэрсію|вэрсіі|вэрсіяў}}.\nЯе выдаленьне можа выклікаць праблемы ў працы базы зьвестак {{GRAMMAR:родны|{{SITENAME}}}}; будзьце асьцярожны.",
+       "delete-cantedit": "Вы ня можаце выдаліць гэтую старонку, таму што ня маеце правоў на яе рэдагаваньне.",
        "deleting-backlinks-warning": "'''Увага:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|іншыя старонкі]] ўключаюць або спасылаюцца на старонку, якую вы зьбіраецеся выдаліць.",
        "rollback": "Адкаціць рэдагаваньні",
        "rollback_short": "Адкат",
        "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 Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць іх і абраць тэму па змоўчаньні.\n\n$2\n\n; Калі вы толькі што ўсталявалі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's каталёгу тэмаў]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code>skins/</code> зь яго.\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code>skins/</code> вашай усталёўкі MediaWiki.\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>$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 tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code>skins/</code> зь яго.\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code>skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча. Глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць іх і абраць тэму па змоўчаньні.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (уключана)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''адключана''')"
 }
index 40e840a..73e5b9c 100644 (file)
        "hidetoc": "не паказваць",
        "collapsible-collapse": "Схаваць",
        "collapsible-expand": "Паказаць",
+       "confirmable-confirm": "{{GENDER:$1|Вы}} ўпэўнены?",
+       "confirmable-yes": "Так",
+       "confirmable-no": "Не",
        "thisisdeleted": "Паказаць ці аднавіць $1?",
        "viewdeleted": "Ці паказаць $1?",
        "restorelink": "$1 {{PLURAL:$1|сцёртая праўка|сцёртыя праўкі|сцёртых правак}}",
        "delete-edit-reasonlist": "Правіць прычыны сцірання",
        "delete-toobig": "Старонка мае вялікую гісторыю правак, больш за $1 {{PLURAL:$1|версію|версій}}. Сціранне такіх старонак было абмежавана, каб пазбегчы ўтварэння выпадковых перашкод працы {{SITENAME}}.",
        "delete-warning-toobig": "Старонка мае вялікую гісторыю правак, больш за $1 {{PLURAL:$1|версію|версій}}. Сціранне такіх старонак можа перашкодзіць працы базы даных {{SITENAME}}; будзьце асцярожнымі.",
+       "delete-cantedit": "Вы не можаце сцерці гэту старонку, таму што не маеце дазволу правіць яе.",
        "deleting-backlinks-warning": "'''Увага:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Іншыя старонкі]] спасылаюцца на ці ўключаюць старонку, якую вы збіраецеся сцерці.",
        "rollback": "Адкаціць праўкі",
        "rollback_short": "Адкат",
        "autoblockid": "Аўтаблакіроўка #$1",
        "block": "Заблакаваць удзельніка",
        "unblock": "Разблакаваць удзельніка",
-       "blockip": "Заблакаваць удзельніка",
+       "blockip": "Заблакаваць {{GENDER:$1|удзельніка|удзельніцу}}",
        "blockip-legend": "Заблакаваць удзельніка",
        "blockiptext": "Гэты фармуляр дазваляе заблакаваць магчымасць запісу для пэўнага адрасу IP ці імя ўдзельніка.\nГэта трэба рабіць толькі дзеля засцерагання ад вандалізму і ў адпаведнасці з [[{{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": "Зняць гэты блок",
        "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 Інструкцыя: Устаноўка вокладак] дзеля інфармацыі па ўключэнні і выбару прадвызначанай вокладкі.\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 tarball-інсталятар], які ўтрымлівае некалькі вокладак і прыставак. Вы можаце скапіяваць і ўставіць каталог <code>skins/</code> з яго.\n:* Зрабіўшы клон  аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталог <code>skins/</code> вашай інсталяцыі MediaWiki.\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>$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 tarball-інсталятар], які ўтрымлівае некалькі вокладак і прыставак. Вы можаце скапіяваць і ўставіць каталог <code>skins/</code> адтуль.\n:* Зрабіўшы клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталог <code>skins/</code> вашай інсталяцыі MediaWiki.\n: Калі вы распрацоўшчык MediaWiki, гэта не павінна адбіцца на вашым git-сховішчы. Гл. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя: Настройка вокладак] дзеля інфармацыі па ўключэнні вокладак і выбары прадвызначэння.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (уключана)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''выключана''')"
 }
index 8de83ad..c67f8c0 100644 (file)
@@ -20,7 +20,8 @@
                        "Vladimir Penov",
                        "Петър Петров",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Gazimagomedov"
                ]
        },
        "tog-underline": "Подчертаване на препратките:",
        "searchdisabled": "Търсенето в {{SITENAME}} е временно изключено. Междувременно можете да търсите чрез Google. Обърнете внимание, че съхранените при тях страници най-вероятно са остарели.",
        "search-error": "Възникна грешка при търсене: $1",
        "preferences": "Настройки",
-       "mypreferences": "Ð\9dаÑ\81Ñ\82Ñ\80ойки",
+       "mypreferences": "РекÑ\8aезаби",
        "prefs-edits": "Брой редакции:",
        "prefs-skin": "Облик",
        "skin-preview": "предварителен преглед",
index 8767a1b..a241a53 100644 (file)
        "searchprofile-everything-tooltip": "सभन सामग्री में खोजीं (वार्ता पन्ना सहित)",
        "searchprofile-advanced-tooltip": "विशेष नामस्थान में खोजीं",
        "search-result-size": "$1 ({{PLURAL:$2|1 शब्द|$2 शब्द}})",
-       "search-result-score": "प्रासंगिकता: $1%",
        "search-redirect": "(पुन: निर्देशण $1)",
        "search-section": "(खंड $1)",
        "search-suggest": "का राउर मतलब बा: $1",
index 1f18c13..328fcd2 100644 (file)
        "talkpagelinktext": "Pandir",
        "specialpage": "Tungkaran istimiwa",
        "personaltools": "Pakakas surang",
-       "postcomment": "Palih hanyar",
        "articlepage": "Tiringi isi tungkaran",
        "talk": "Pamandiran",
        "views": "Titiringan",
        "externaldberror": "Ada kasalahan apakah kacucukan basis data atawa Pian kada bulih mamutakhirakan akun luar.",
        "login": "Babuat",
        "nav-login-createaccount": "Babuat log / ulah akun",
-       "loginprompt": "Pian harus mangaktipakan ''cookies'' hagan kawa babuat log ka {{SITENAME}}.",
        "userlogin": "Babuat log / ulah akun",
        "userloginnocreate": "Babuat log",
        "logout": "Kaluar",
        "searchprofile-advanced-tooltip": "Panggagaian pada ragam ngaran kakamar",
        "search-result-size": "$1 ({{PLURAL:$2|1 ujar|$2 uujar}})",
        "search-result-category-size": "{{PLURAL:$1|1 angguta|$1 aangguta}} ({{PLURAL:$2|1 subtumbung|$2 subtutumbung}}, {{PLURAL:$3|1 barakas|$3 babarakas}})",
-       "search-result-score": "Kacucukan: $1%",
        "search-redirect": "(Paugahan $1)",
        "search-section": "(hagian $1)",
        "search-suggest": "Nginikah maksud Pian: $1",
        "uploadwarning": "Paringatan hunggah",
        "uploadwarning-text": "Muhun mangganti katarangan barakas di bawah wan cubai pulang.",
        "savefile": "Simpan barakas",
-       "uploadedimage": "mamuat \"[[$1]]\"",
-       "overwroteimage": "mahunggah sabuah pérsi hanyar matan \"[[$1]]\"",
        "uploaddisabled": "Pahunggahan dipajahakan.",
        "copyuploaddisabled": "Hunggah lawan URL pajah.",
        "uploaddisabledtext": "Hunggah barakas kada kawa.",
        "watchlist-details": "{{PLURAL:$1|$1 tungkaran|$1 tungkaran}} dalam daptar itihan Pian, kada mahitung tungkaran pamandiran.",
        "wlheader-enotif": "Suril pamadahan dipajahi.",
        "wlheader-showupdated": "Tutungkaran nang ba-ubah tumatan ilangan tauncit Pian ditampaiakan dalam '''hurup kandal'''",
+       "wlnote": "Di bawah naya adalah {{PLURAL:$1|paubahan|'''$1''' paubahan}} tauncit dalam '''$2''' jam tauncit, par $3, $4.",
        "wlshowlast": "Tampaiakan $1 jam $2 hari pahabisan $3",
        "watchlist-options": "Pilihan daptar itihan",
        "watching": "Maitihi...",
        "duplicate-defaultsort": "Paringatan: Sunduk pangurutan baku \"$2\" mangabaikan sunduk pangurutan baku \"$1\" sabalumnya.",
        "version": "Virsi",
        "version-extensions": "Ekstensi tapasang",
+       "version-skins": "Kukulimbit",
        "version-specialpages": "Tungkaran istimiwa",
        "version-parserhooks": "Kait parser",
        "version-variables": "Pariabal",
        "version-antispam": "Pancagahan spam",
-       "version-skins": "Kukulimbit",
        "version-other": "Lain-lain",
        "version-mediahandlers": "Pananganan madia",
        "version-hooks": "Kait",
index 66cce05..1726678 100644 (file)
        "pool-timeout": "সময় উত্তির্ণ লক-এর জন্য অপেক্ষারত",
        "pool-queuefull": "পুলের লাইন পূর্ণ",
        "pool-errorunknown": "অজানা ত্রুটি",
+       "pool-servererror": "পুল কাউন্টার সার্ভিস নিষ্ক্রিয় ($1)।",
        "aboutsite": "{{SITENAME}} বৃত্তান্ত",
        "aboutpage": "Project:বৃত্তান্ত",
        "copyright": "বিষয়বস্তু $1-এর আওতায় প্রকাশিত যদি না অন্য কিছু নির্ধারিত থাকে।",
        "hidetoc": "আড়ালে রাখো",
        "collapsible-collapse": "সংকোচন",
        "collapsible-expand": "প্রসারণ",
+       "confirmable-confirm": "{{GENDER:$1|আপনি}} কি নিশ্চিত?",
        "confirmable-yes": "হ্যাঁ",
        "confirmable-no": "না",
        "thisisdeleted": "$1 দেখানো বা পুনঃসৃষ্টি করা হোক?",
        "invalidtitle-knownnamespace": "অবৈধ শিরোনাম, যেখানে নামস্থান \"$2\" এবং লেখা হয়েছে \"$3\"",
        "invalidtitle-unknownnamespace": "অবৈধ শিরোনাম, যেখানে ব্যবহৃত হয়েছে অপরিচিত নামস্থান সংখ্যা $1 এবং লেখা হয়েছে \"$2\"",
        "exception-nologin": "লগইন করা হয়নি",
-       "exception-nologin-text": "এই কাজটি করার জন্য উইকিতে [[Special:Userlogin|লগইন]] করা প্রয়োজন।",
+       "exception-nologin-text": "এই কাজ করা বা পাতাটি দেখার জন্য অনুগ্রহ করে প্রবেশ করুন।",
        "exception-nologin-text-manual": "অনুগ্রহ করে এই পাতা দেখতে অথবা পরিবর্তন করতে $1 করুন।",
        "virus-badscanner": "ভুল কনফিগারেশন: অজ্ঞাত ভাইরাস স্কেনার: ''$1''",
        "virus-scanfailed": "স্ক্যান করা যাচ্ছে না (কোড $1)",
        "welcomecreation-msg": "আপনার অ্যাকাউন্ট তৈরী হয়েছে।\nআপনার [[Special:Preferences|{{SITENAME}} পছন্দসমূহ]]  পরিবর্তন করে নিতে ভুলবেন না।",
        "yourname": "ব্যবহারকারী নাম:",
        "userlogin-yourname": "ব্যবহারকারী নাম",
-       "userlogin-yourname-ph": "à¦\86পনার à¦¬à§\8dযবহাà¦\95ারà§\80 à¦¨à¦¾à¦® à¦ªà§\8dরবà§\87শ à¦\95রান",
+       "userlogin-yourname-ph": "à¦\86পনার à¦¬à§\8dযবহাà¦\95ারà§\80 à¦¨à¦¾à¦® à¦²à¦¿à¦\96à§\81ন",
        "createacct-another-username-ph": "আপনার ব্যবহাকারী নাম প্রবেশ করান",
-       "yourpassword": "শবà§\8dদà¦\9aাবি:",
-       "userlogin-yourpassword": "শবà§\8dদà¦\9aাবি (Password)",
-       "userlogin-yourpassword-ph": "à¦\86পনার à¦¶à¦¬à§\8dদà¦\9aাবি (পাসà¦\93য়ারà§\8dড) লিখুন",
-       "createacct-yourpassword-ph": "শবà§\8dদà¦\9aাবি à¦ªà§\8dরদান à¦\95রুন",
-       "yourpasswordagain": "শবà§\8dদà¦\9aাবিà¦\9fি (password) à¦\86বার à¦²à¦¿à¦\96à§\81ন",
-       "createacct-yourpasswordagain": "শবà§\8dদà¦\9aাবি নিশ্চিত করুন",
-       "createacct-yourpasswordagain-ph": "à¦\86বারà¦\93 à¦¶à¦¬à§\8dদà¦\9aাবি à¦ªà§\8dরদান à¦\95রুন",
-       "remembermypassword": "à¦\8fà¦\95াধিà¦\95 à¦¸à§\87শনà§\87র à¦\9cনà§\8dয à¦¶à¦¬à§\8dদà¦\9aাবি à¦®à¦¨à§\87 à¦°à¦¾à¦\96া à¦¹à§\8bà¦\95 (সরà§\8dবà§\8bà¦\9aà§\8dà¦\9a $1 {{PLURAL:$1|দিনà§\87র|দিনের}} জন্য)",
+       "yourpassword": "পাসà¦\93য়ারà§\8dড:",
+       "userlogin-yourpassword": "পাসà¦\93য়ারà§\8dড",
+       "userlogin-yourpassword-ph": "à¦\86পনার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড লিখুন",
+       "createacct-yourpassword-ph": "পাসà¦\93য়ারà§\8dড à¦²à¦¿à¦\96ুন",
+       "yourpasswordagain": "পাসà¦\93য়ারà§\8dড à¦\86বার à¦²à¦¿à¦\96à§\81ন:",
+       "createacct-yourpasswordagain": "পাসà¦\93য়ারà§\8dড নিশ্চিত করুন",
+       "createacct-yourpasswordagain-ph": "à¦\86বারà¦\93 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦²à¦¿à¦\96ুন",
+       "remembermypassword": "à¦\8fà¦\87 à¦¬à§\8dরাà¦\89à¦\9cারà§\87 à¦\86মার à¦ªà§\8dরবà§\87শ à¦®à¦¨à§\87 à¦°à¦¾à¦\96া à¦¹à§\8bà¦\95 (সরà§\8dবà§\8bà¦\9aà§\8dà¦\9a $1 {{PLURAL:$1|দিনের}} জন্য)",
        "userlogin-remembermypassword": "আমাকে প্রবেশ অবস্থায় রাখো",
        "userlogin-signwithsecure": "নিরাপদ সংযোগ ব্যবহার করুন",
        "yourdomainname": "আপনার ডোমেইন",
        "gotaccount": "আপনার কি ইতিমধ্যে একটি অ্যাকাউন্ট তৈরি করা আছে? '''$1''' করুন।",
        "gotaccountlink": "প্রবেশ",
        "userlogin-resetlink": "আপনার লগইনের বিস্তারিত তথ্যাদি ভুলে গেছেন?",
-       "userlogin-resetpassword-link": "শবà§\8dদà¦\9aাবি ভুলে গেছেন?",
+       "userlogin-resetpassword-link": "পাসà¦\93য়ারà§\8dড ভুলে গেছেন?",
        "userlogin-helplink2": "লগইন সংক্রান্ত সাহায্য",
        "userlogin-loggedin": "আপনি বর্তমানে {{GENDER:$1|$1}} হিসাবে লগইন আছেন।\nঅন্য ব্যবহারকারী নামে লগইন করতে চাইলে নিচের ফর্মটি ব্যবহার করুন।",
        "userlogin-createanother": "আরেকটি অ্যাকাউন্ট তৈরি করুন",
        "createacct-benefit-body1": "{{PLURAL:$1|টি সম্পাদনা}}",
        "createacct-benefit-body2": "{{PLURAL:$1|টি পাতা}}",
        "createacct-benefit-body3": "জন সাম্প্রতিক {{PLURAL:$1|অবদানকারী}}",
-       "badretype": "à¦\86পনার à¦ªà§\8dরবà§\87শ à¦\95রানà§\8b à¦¶à¦¬à§\8dদà¦\9aাবি'à¦\9fি à¦®à¦¿à¦²à¦\9bà§\87না।",
+       "badretype": "à¦\86পনার à¦ªà§\8dরবà§\87শ à¦\95রানà§\8b à¦ªà¦¾à¦¸à¦\93য়ারà§\8dডà¦\9fি à¦®à¦¿à¦²à¦\9bà§\87 না।",
        "userexists": "এই ব্যবহারকারী নামটি ইতমধ্যে ব্যবহার করা হয়েছে।\nঅনুগ্রহ করে অন্য নাম বেছে নিন।",
        "loginerror": "প্রবেশ করতে সমস্যা হয়েছে",
        "createacct-error": "অ্যাকাউন্ট তৈরি ত্রুটি",
        "createaccounterror": "অ্যাকাউন্ট তৈরি হয়নি: $1",
-       "nocookiesnew": "বà§\8dযবহারà¦\95ারà§\80র à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà¦\9fি à¦¸à§\83ষà§\8dà¦\9fি à¦\95রা à¦¹à¦¯à¦¼à§\87à¦\9bà§\87, à¦\95িনà§\8dতà§\81 à¦\86পনি à¦\8fà¦\96নà¦\93 à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রà§\87ননি। {{SITENAME}}-তà§\87 à¦\95à§\81à¦\95ি à¦¬à§\8dযবহার à¦\95রà§\87 à¦¬à§\8dযবহারà¦\95ারà§\80দà§\87র à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রানà§\8b à¦¹à¦¯à¦¼à¥¤ à¦\86পনার à¦¬à§\8dরাà¦\89à¦\9cারà§\87 à¦\95à§\81à¦\95িà¦\97à§\81লি à¦¨à¦¿à¦·à§\8dà¦\95à§\8dরিয় à¦\95রা à¦\86à¦\9bà§\87। à¦\85নà§\81à¦\97à§\8dরহ à¦\95রà§\87 à¦\95à§\81à¦\95িà¦\97à§\81লি à¦¸à¦\95à§\8dরিয় à¦\95রà§\81ন à¦\8fবà¦\82 à¦\86পনার à¦¨à¦¤à§\81ন à¦¬à§\8dযবহারà¦\95ারà§\80 à¦¨à¦¾à¦® à¦\93 à¦¶à¦¬à§\8dদà¦\9aাবি ব্যবহার করে অ্যাকাউন্টে প্রবেশ করুন।",
+       "nocookiesnew": "বà§\8dযবহারà¦\95ারà§\80র à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà¦\9fি à¦¸à§\83ষà§\8dà¦\9fি à¦\95রা à¦¹à¦¯à¦¼à§\87à¦\9bà§\87, à¦\95িনà§\8dতà§\81 à¦\86পনি à¦\8fà¦\96নà¦\93 à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রà§\87ননি। {{SITENAME}}-তà§\87 à¦\95à§\81à¦\95ি à¦¬à§\8dযবহার à¦\95রà§\87 à¦¬à§\8dযবহারà¦\95ারà§\80দà§\87র à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রানà§\8b à¦¹à¦¯à¦¼à¥¤ à¦\86পনার à¦¬à§\8dরাà¦\89à¦\9cারà§\87 à¦\95à§\81à¦\95িà¦\97à§\81লি à¦¨à¦¿à¦·à§\8dà¦\95à§\8dরিয় à¦\95রা à¦\86à¦\9bà§\87। à¦\85নà§\81à¦\97à§\8dরহ à¦\95রà§\87 à¦\95à§\81à¦\95িà¦\97à§\81লি à¦¸à¦\95à§\8dরিয় à¦\95রà§\81ন à¦\8fবà¦\82 à¦\86পনার à¦¨à¦¤à§\81ন à¦¬à§\8dযবহারà¦\95ারà§\80 à¦¨à¦¾à¦® à¦\93 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড ব্যবহার করে অ্যাকাউন্টে প্রবেশ করুন।",
        "nocookieslogin": "{{SITENAME}} এ কুকি (cookies) এর মাধ্যমে ব্যবহারকারীদের লগ-ইন সম্পন্ন করা হয়। আপনার ব্রাঊজারে কুকি বন্ধ করে দেওয়া আছে। কুকি চালু করে আবার চেষ্টা করুন।",
        "nocookiesfornew": "ব্যবহারকারীর অ্যাকাউন্ট তৈরি হয়নি, কারণ এর উৎস সম্পর্কে আমরা নিশ্চিত নই।\nনিশ্চিত করুন আপনার কুকি সক্রিয় রয়েছে, পাতাটি পুনরায় লোড করে আবার চেষ্টা করুন।",
        "noname": "আপনি সঠিক ব্যবহারকারী নাম নির্দিষ্ট করেননি।",
        "nosuchusershort": "\"$1\" নামের কোন ব্যবহারকারী নেই। নামের বানান পরীক্ষা করুন।",
        "nouserspecified": "আপনাকে অবশ্যই ব্যবহারকারী নাম নির্দিষ্ট করতে হবে।",
        "login-userblocked": "এই ব্যবহারকারীকে বাধা দেওয়া হয়েছে। লগ-ইন সম্ভব নয়।",
-       "wrongpassword": "à¦\86পনি à¦­à§\81ল à¦¶à¦¬à§\8dদà¦\9aাবি ব্যবহার করেছেন। অনুগ্রহ করে আবার চেষ্টা করুন।",
-       "wrongpasswordempty": "শবà§\8dদà¦\9aাবি (password) প্রবেশের ঘরটি খালি ছিল। দয়া করে আবার চেষ্টা করুন।",
-       "passwordtooshort": "শবà§\8dদà¦\9aাবি অবশ্যই {{PLURAL:$1|১ অক্ষরের|$1 অক্ষরের}} হতে হবে।",
-       "password-name-match": "à¦\86পনার à¦¶à¦¬à§\8dদà¦\9aাবি আপনার ব্যবহারকারী নাম থেকে আলাদা হতে হবে।",
-       "password-login-forbidden": "à¦\8fà¦\87 à¦¬à§\8dযবহারà¦\95ারà§\80র à¦¨à¦¾à¦® à¦\8fবà¦\82 à¦¶à¦¬à§\8dদà¦\9aাবিটি ব্যবহার নিষিদ্ধ করা হয়েছে।",
-       "mailmypassword": "শবà§\8dদà¦\9aাবি রিসেট",
-       "passwordremindertitle": "{{SITENAME}}-à¦\8fর à¦\9cনà§\8dয à¦¨à¦¤à§\81ন à¦¸à¦¾à¦®à¦¯à¦¼à¦¿à¦\95 à¦¶à¦¬à§\8dদà¦\9aাবি",
-       "passwordremindertext": "à¦\95à§\87à¦\89 à¦\8fà¦\95à¦\9cন ($1 à¦\86à¦\87পি à¦ à¦¿à¦\95ানাà¦\9fি à¦¥à§\87à¦\95à§\87 à¦¸à¦®à§\8dভবত à¦\86পনি) à¦\85নà§\81রà§\8bধ à¦\95রà§\87à¦\9bà§\87ন à¦¯à§\87ন à¦\86মরা à¦\86পনাà¦\95à§\87 {{SITENAME}} ($4) à¦\8fর à¦\9cনà§\8dয à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦¶à¦¬à§\8dদà¦\9aাবি à¦ªà¦¾à¦ à¦¾à¦\87।\n\"$2\" à¦¨à¦¾à¦®à§\87 à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦\96à§\8bলা à¦¹à¦¯à¦¼à§\87à¦\9bà§\87 à¦\8fবà¦\82 à¦\8fর à¦¶à¦¬à§\8dদà¦\9aাবি \"$3\"। à¦\86পনি à¦¯à¦¦à¦¿ à¦\8fà¦\9fাà¦\87 à¦\9aà§\87য়à§\87 à¦¥à¦¾à¦\95à§\87ন, à¦¤à¦¾à¦¹à¦²à§\87 à¦\86পনাà¦\95à§\87 à¦\8fà¦\96ন à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রতà§\87 à¦¹à¦¬à§\87 à¦\93 à¦¨à¦¤à§\81ন à¦\8fà¦\95à¦\9fি à¦¶à¦¬à§\8dদà¦\9aাবি à¦ªà¦\9bনà§\8dদ à¦\95রতà§\87 à¦¹à¦¬à§\87।\n{{PLURAL:$5|à¦\8fà¦\95 à¦¦à¦¿à¦¨|$5 à¦¦à¦¿à¦¨}} à¦ªà¦°à§\87 à¦\86পনার à¦\8fà¦\87 à¦\85সà§\8dথায়à§\80 à¦¶à¦¬à§\8dদà¦\9aাবির à¦®à§\87য়াদ à¦\89তà§\8dতà§\80রà§\8dণ à¦¹à¦¯à¦¼à§\87 à¦¯à¦¾à¦¬à§\87।\n\nযদি à¦\86পনি à¦\9bাড়া à¦\85নà§\8dয à¦\95à§\87à¦\89 à¦\8fà¦\87 à¦\85নà§\81রà§\8bধ à¦\95রà§\87 à¦¥à¦¾à¦\95à§\87, à¦\95িà¦\82বা à¦¯à¦¦à¦¿ à¦\86পনার à¦ªà§\81রনà§\8b à¦¶à¦¬à§\8dদà¦\9aাবিà¦\9fি à¦®à¦¨à§\87 à¦ªà¦¡à¦¼à§\87 à¦\97িয়à§\87 à¦¥à¦¾à¦\95à§\87 à¦\93 à¦¸à§\87à¦\9fি à¦\86র à¦¬à¦¦à¦²à¦¾à¦¬à¦¾à¦° à¦\87à¦\9aà§\8dà¦\9bা à¦¨à¦¾ à¦¥à¦¾à¦\95à§\87, à¦¤à¦¾à¦¹à¦²à§\87 à¦\8fà¦\87 à¦¬à¦¾à¦°à§\8dতাà¦\9fি à¦\89পà§\87à¦\95à§\8dষা à¦\95রতà§\87 à¦ªà¦¾à¦°à§\87ন à¦\8fবà¦\82 à¦ªà§\81রনà§\8b à¦¶à¦¬à§\8dদà¦\9aাবিটিই ব্যবহার করে যেতে পারেন।",
+       "wrongpassword": "à¦\86পনি à¦­à§\81ল à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড ব্যবহার করেছেন। অনুগ্রহ করে আবার চেষ্টা করুন।",
+       "wrongpasswordempty": "পাসà¦\93য়ারà§\8dড প্রবেশের ঘরটি খালি ছিল। দয়া করে আবার চেষ্টা করুন।",
+       "passwordtooshort": "পাসà¦\93য়ারà§\8dড অবশ্যই {{PLURAL:$1|১ অক্ষরের|$1 অক্ষরের}} হতে হবে।",
+       "password-name-match": "à¦\86পনার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড আপনার ব্যবহারকারী নাম থেকে আলাদা হতে হবে।",
+       "password-login-forbidden": "à¦\8fà¦\87 à¦¬à§\8dযবহারà¦\95ারà§\80র à¦¨à¦¾à¦® à¦\8fবà¦\82 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dডটি ব্যবহার নিষিদ্ধ করা হয়েছে।",
+       "mailmypassword": "পাসà¦\93য়ারà§\8dড রিসেট",
+       "passwordremindertitle": "{{SITENAME}}-à¦\8fর à¦\9cনà§\8dয à¦¨à¦¤à§\81ন à¦¸à¦¾à¦®à¦¯à¦¼à¦¿à¦\95 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড",
+       "passwordremindertext": "à¦\95à§\87à¦\89 à¦\8fà¦\95à¦\9cন ($1 à¦\86à¦\87পি à¦ à¦¿à¦\95ানাà¦\9fি à¦¥à§\87à¦\95à§\87 à¦¸à¦®à§\8dভবত à¦\86পনি) à¦\85নà§\81রà§\8bধ à¦\95রà§\87à¦\9bà§\87ন à¦¯à§\87ন à¦\86মরা à¦\86পনাà¦\95à§\87 {{SITENAME}} ($4) à¦\8fর à¦\9cনà§\8dয à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦ªà¦¾à¦ à¦¾à¦\87।\n\"$2\" à¦¨à¦¾à¦®à§\87 à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦\96à§\8bলা à¦¹à¦¯à¦¼à§\87à¦\9bà§\87 à¦\8fবà¦\82 à¦\8fর à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড \"$3\"। à¦\86পনি à¦¯à¦¦à¦¿ à¦\8fà¦\9fাà¦\87 à¦\9aà§\87য়à§\87 à¦¥à¦¾à¦\95à§\87ন, à¦¤à¦¾à¦¹à¦²à§\87 à¦\86পনাà¦\95à§\87 à¦\8fà¦\96ন à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রতà§\87 à¦¹à¦¬à§\87 à¦\93 à¦¨à¦¤à§\81ন à¦\8fà¦\95à¦\9fি à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦ªà¦\9bনà§\8dদ à¦\95রতà§\87 à¦¹à¦¬à§\87।\n{{PLURAL:$5|à¦\8fà¦\95 à¦¦à¦¿à¦¨|$5 à¦¦à¦¿à¦¨}} à¦ªà¦°à§\87 à¦\86পনার à¦\8fà¦\87 à¦\85সà§\8dথায়à§\80 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dডà§\87র à¦®à§\87য়াদ à¦\89তà§\8dতà§\80রà§\8dণ à¦¹à¦¯à¦¼à§\87 à¦¯à¦¾à¦¬à§\87।\n\nযদি à¦\86পনি à¦\9bাড়া à¦\85নà§\8dয à¦\95à§\87à¦\89 à¦\8fà¦\87 à¦\85নà§\81রà§\8bধ à¦\95রà§\87 à¦¥à¦¾à¦\95à§\87, à¦\95িà¦\82বা à¦¯à¦¦à¦¿ à¦\86পনার à¦ªà§\81রনà§\8b à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦®à¦¨à§\87 à¦ªà¦¡à¦¼à§\87 à¦\97িয়à§\87 à¦¥à¦¾à¦\95à§\87 à¦\93 à¦¸à§\87à¦\9fি à¦\86র à¦¬à¦¦à¦²à¦¾à¦¬à¦¾à¦° à¦\87à¦\9aà§\8dà¦\9bা à¦¨à¦¾ à¦¥à¦¾à¦\95à§\87, à¦¤à¦¾à¦¹à¦²à§\87 à¦\8fà¦\87 à¦¬à¦¾à¦°à§\8dতাà¦\9fি à¦\89পà§\87à¦\95à§\8dষা à¦\95রতà§\87 à¦ªà¦¾à¦°à§\87ন à¦\8fবà¦\82 à¦ªà§\81রনà§\8b à¦ªà¦¾à¦¸à¦\93য়ারà§\8dডটিই ব্যবহার করে যেতে পারেন।",
        "noemail": "\"$1\" ব্যবহারকারীর জন্য কোন ই-মেইল ঠিকানা সংরক্ষিত নেই।",
        "noemailcreate": "আপনাকে অবশ্যই একটি সঠিক ইমেইল ঠিকানা দিতে হবে",
-       "passwordsent": "à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦¶à¦¬à§\8dদà¦\9aাবি \"$1\" ব্যবহারকারীর ই-মেইল ঠিকানায় পাঠানো হয়েছে। দয়াকরে তা পাওয়ার পর আবার লগ-ইন করুন।",
-       "blocked-mailpassword": "à¦\86পনার à¦\86à¦\87পি à¦ à¦¿à¦\95ানাà¦\9fি à¦¥à§\87à¦\95à§\87 à¦¸à¦®à§\8dপাদনা à¦\95রতà§\87 à¦¬à¦¾à¦§à¦¾ à¦\86à¦\9bà§\87, à¦¤à¦¾à¦\87 à¦\8fà¦\87 à¦ à¦¿à¦\95ানার à¦\85পবà§\8dযবহার à¦\95রà§\87 à¦¶à¦¬à§\8dদà¦\9aাবি ফেরত আনতে দেয়া যাবে না।",
+       "passwordsent": "à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড \"$1\" ব্যবহারকারীর ই-মেইল ঠিকানায় পাঠানো হয়েছে। দয়াকরে তা পাওয়ার পর আবার লগ-ইন করুন।",
+       "blocked-mailpassword": "à¦\86পনার à¦\86à¦\87পি à¦ à¦¿à¦\95ানাà¦\9fি à¦¥à§\87à¦\95à§\87 à¦¸à¦®à§\8dপাদনা à¦\95রতà§\87 à¦¬à¦¾à¦§à¦¾ à¦\86à¦\9bà§\87, à¦¤à¦¾à¦\87 à¦\8fà¦\87 à¦ à¦¿à¦\95ানার à¦\85পবà§\8dযবহার à¦\95রà§\87 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড ফেরত আনতে দেয়া যাবে না।",
        "eauthentsent": "মনোনীত ই-মেইল ঠিকানায় একটি নিশ্চিতকরণ ই-মেইল পাঠানো হয়েছে।\nঐ অ্যাকাউন্টটে অন্য কোন ই-মেইল পাঠানোর আগে আপনাকে ই-মেইলের নির্দেশগুলি অনুসরণ করতে হবে, যাতে অ্যাকাউন্টটি যে আসলেই আপনার, তা নিশ্চিত হয়।",
-       "throttled-mailpassword": "বিà¦\97ত {{PLURAL:$1|à¦\98ণà§\8dà¦\9fার|$1 à¦\98ণà§\8dà¦\9fার}} à¦®à¦§à§\8dযà§\87 à¦\87তিমধà§\8dযà§\87à¦\87 à¦\8fà¦\95বার à¦¶à¦¬à§\8dদà¦\9aাবি à¦¬à¦¦à¦²à§\87র à¦¤à¦¥à§\8dয à¦ªà¦¾à¦ à¦¾à¦¨à§\8b à¦¹à¦¯à¦¼à§\87à¦\9bà§\87। à¦\85পবà§\8dযবহার à¦°à§\8bধà§\87 à¦ªà§\8dরতি {{PLURAL:$1|à¦\98ণà§\8dà¦\9fায়|$1 à¦\98ণà§\8dà¦\9fায়}} à¦\95à§\87বল à¦\8fà¦\95বার à¦¶à¦¬à§\8dদà¦\9aাবি বদলের তথ্য পাঠানো যাবে।",
+       "throttled-mailpassword": "বিà¦\97ত {{PLURAL:$1|à¦\98ণà§\8dà¦\9fার|$1 à¦\98ণà§\8dà¦\9fার}} à¦®à¦§à§\8dযà§\87 à¦\87তিমধà§\8dযà§\87à¦\87 à¦\8fà¦\95বার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦¬à¦¦à¦²à§\87র à¦¤à¦¥à§\8dয à¦ªà¦¾à¦ à¦¾à¦¨à§\8b à¦¹à¦¯à¦¼à§\87à¦\9bà§\87। à¦\85পবà§\8dযবহার à¦°à§\8bধà§\87 à¦ªà§\8dরতি {{PLURAL:$1|à¦\98ণà§\8dà¦\9fায়|$1 à¦\98ণà§\8dà¦\9fায়}} à¦\95à§\87বল à¦\8fà¦\95বার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড বদলের তথ্য পাঠানো যাবে।",
        "mailerror": "ইমেইল পাঠাতে সমস্যা: $1",
        "acct_creation_throttle_hit": "এই উইকির দর্শক আপনার IP থেকে বিগত সময়ে {{PLURAL:$1|1 টি অ্যাকাউন্ট|$1 গুলো অ্যাকাউন্ট}} তৈরি করেছেন, যা এই সময়ের জন্য সর্বোচ্চ অনুমোদনকৃত।\nফলে, এই IP থেকে দর্শক এই সময়ে নতুন অ্যাকাউন্ট তৈরি করতে পারবেন না।",
        "emailauthenticated": "আপনার ইমেইল ঠিকানাটি $2 তারিখের $3 এ নিশ্চিত করা হয়েছে।",
        "accountcreated": "অ্যাকাউন্ট তৈরি করা হয়েছে",
        "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|আলাপ]]) এর জন্য ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয়েছে।",
        "createaccount-title": "{{SITENAME}}-এর জন্য অ্যাকাউন্ট সৃষ্টি",
-       "createaccount-text": "à¦\95à§\87à¦\89 $2-à¦\8fর à¦\9cনà§\8dয {{SITENAME}}-à¦\8f à¦\8fà¦\95à¦\9fি à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¸à§\83ষà§\8dà¦\9fি à¦\95রà§\87à¦\9bà§\87ন ($4)। \"$2\"-à¦\8fর à¦\9cনà§\8dয à¦¶à¦¬à§\8dদà¦\9aাবি à¦¹à¦² \"$3\"। à¦\86পনার à¦\8fà¦\96ন à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রà§\87 à¦¶à¦¬à§\8dদà¦\9aাবি পরিবর্তন করা উচিত।\n\nযদি ভুল করে অ্যাকাউন্টটি সৃষ্টি হয়ে থাকে, তাহলে এই বার্তাটি উপেক্ষা করুন।",
+       "createaccount-text": "à¦\95à§\87à¦\89 $2-à¦\8fর à¦\9cনà§\8dয {{SITENAME}}-à¦\8f à¦\8fà¦\95à¦\9fি à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¸à§\83ষà§\8dà¦\9fি à¦\95রà§\87à¦\9bà§\87ন ($4)। \"$2\"-à¦\8fর à¦\9cনà§\8dয à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦¹à¦² \"$3\"। à¦\86পনার à¦\8fà¦\96ন à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রà§\87 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড পরিবর্তন করা উচিত।\n\nযদি ভুল করে অ্যাকাউন্টটি সৃষ্টি হয়ে থাকে, তাহলে এই বার্তাটি উপেক্ষা করুন।",
        "login-throttled": "আপনি সাম্প্রতিক সময়ে পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন।\nপুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।",
        "login-abort-generic": "আপনার লগইন সফল ছিলো না - বাতিল করা হয়েছে",
        "loginlanguagelabel": "ভাষা: $1",
        "php-mail-error-unknown": "পিএইচপি এর মেইল () কার্যে অজ্ঞাত ভুল",
        "user-mail-no-addy": "কোনো ইমেইল ঠিকানা ছাড়াই ইমেইল করার চেষ্টা করা হয়েছে।",
        "user-mail-no-body": "অত্যান্ত সংক্ষিপ্ত অথবা কোনো তথ্য ছাড়াই ইমেইল পাঠানোর চেষ্টা করা হয়েছিল।",
-       "changepassword": "শবà§\8dদà¦\9aাবি পরিবর্তন",
+       "changepassword": "পাসà¦\93য়ারà§\8dড পরিবর্তন",
        "resetpass_announce": "লগইন করার জন্য আপনাকে অবশ্যই এনটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে।",
        "resetpass_text": "<!-- এখানে লেখা যোগ করুন -->",
-       "resetpass_header": "শবà§\8dদà¦\9aাবি পরিবর্তন করো",
-       "oldpassword": "পà§\81রনà§\8b à¦¶à¦¬à§\8dদà¦\9aাবি",
-       "newpassword": "নতà§\81ন à¦¶à¦¬à§\8dদà¦\9aাবি:",
-       "retypenew": "নতà§\81ন à¦¶à¦¬à§\8dদà¦\9aাবি আবার লিখুন:",
-       "resetpass_submit": "শবà§\8dদà¦\9aাবি দাও এবং লগ-ইন করো",
-       "changepassword-success": "à¦\86পনার à¦¶à¦¬à§\8dদà¦\9aাবি সাফলভাবে পরিবর্তীত হয়েছে।",
+       "resetpass_header": "পাসà¦\93য়ারà§\8dড পরিবর্তন করো",
+       "oldpassword": "পà§\81রনà§\8b à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড:",
+       "newpassword": "নতà§\81ন à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড:",
+       "retypenew": "নতà§\81ন à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড আবার লিখুন:",
+       "resetpass_submit": "পাসà¦\93য়ারà§\8dড দাও এবং লগ-ইন করো",
+       "changepassword-success": "à¦\86পনার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড সাফলভাবে পরিবর্তীত হয়েছে।",
        "changepassword-throttled": "আপনি সম্প্রতি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।",
-       "resetpass_forbidden": "শবà§\8dদà¦\9aাবি পরিবর্তন করা সম্ভব নয়",
+       "resetpass_forbidden": "পাসà¦\93য়ারà§\8dড পরিবর্তন করা সম্ভব নয়",
        "resetpass-no-info": "এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই লগইন করতে হবে।",
-       "resetpass-submit-loggedin": "শবà§\8dদà¦\9aাবি পরিবর্তন",
+       "resetpass-submit-loggedin": "পাসà¦\93য়ারà§\8dড পরিবর্তন",
        "resetpass-submit-cancel": "বাতিল",
-       "resetpass-wrong-oldpass": "ভà§\81ল à¦\85সà§\8dথায়à§\80 à¦\85থবা à¦¬à¦°à§\8dতমান à¦¶à¦¬à§\8dদà¦\9aাবি।\nসমà§\8dভবতà¦\83 à¦\86পনি à¦\87তà§\8bমধà§\8dযà§\87à¦\87 à¦¸à¦«à¦²à¦­à¦¾à¦¬à§\87 à¦\86পনার à¦¶à¦¬à§\8dদà¦\9aাবিà¦\9fি à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\95রà§\87à¦\9bà§\87ন à¦\85থবা à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦\85সà§\8dথায়à§\80 à¦¶à¦¬à§\8dদà¦\9aাবির জন্য অনুরোধ করেছেন।",
+       "resetpass-wrong-oldpass": "ভà§\81ল à¦\85সà§\8dথায়à§\80 à¦\85থবা à¦¬à¦°à§\8dতমান à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড।\nসমà§\8dভবতà¦\83 à¦\86পনি à¦\87তà§\8bমধà§\8dযà§\87à¦\87 à¦¸à¦«à¦²à¦­à¦¾à¦¬à§\87 à¦\86পনার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dডà¦\9fি à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\95রà§\87à¦\9bà§\87ন à¦\85থবা à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦\85সà§\8dথায়à§\80 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dডà§\87র জন্য অনুরোধ করেছেন।",
        "resetpass-recycled": "অনুগ্রহ করে বর্তমানে ব্যবহার করছেন এমন পাসওয়ার্ডের পরিবর্তে নতুন একটি পাসওয়ার্ড নির্ধারণ করুন।",
        "resetpass-temp-emailed": "সাময়িকভাবে ব্যবহার করার কোড দিয়ে আপনি লগইন করেছেন।\nলগইন করার জন্য আপনাকে অবশ্যই একটি নতুন পাসওয়ার্ড নির্ধারন করতে হবে:",
-       "resetpass-temp-password": "à¦\85সà§\8dথায়à§\80 à¦¶à¦¬à§\8dদà¦\9aাবি:",
-       "resetpass-abort-generic": "শবà§\8dদà¦\9aাবি পরিবর্তন একটি এক্সটেনশনের কারণে স্থগিত করা হয়েছে।",
+       "resetpass-temp-password": "à¦\85সà§\8dথায়à§\80 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড:",
+       "resetpass-abort-generic": "পাসà¦\93য়ারà§\8dড পরিবর্তন একটি এক্সটেনশনের কারণে স্থগিত করা হয়েছে।",
        "resetpass-expired": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে। অনুগ্রহ করে নতুন পাসওয়ার্ড নির্ধারণ করুন।",
        "resetpass-expired-soft": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে এবং আপনাকে একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে। অনুগ্রহ করে এখনই একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে পরিবর্তন করতে চাইলে \"{{int:resetpass-submit-cancel}}\" বাটনে ক্লিক করুন।",
-       "resetpass-validity-soft": "দয়া à¦\95রà§\87 à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦¶à¦¬à§\8dদà¦\9aাবি নির্ধারণ করুন অথবা পরে করার জন্য \"{{int:resetpass-submit-cancel}}\" ক্লিক করুন।",
-       "passwordreset": "শবà§\8dদà¦\9aাবি রিসেট",
+       "resetpass-validity-soft": "দয়া à¦\95রà§\87 à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড নির্ধারণ করুন অথবা পরে করার জন্য \"{{int:resetpass-submit-cancel}}\" ক্লিক করুন।",
+       "passwordreset": "পাসà¦\93য়ারà§\8dড রিসেট",
        "passwordreset-text-one": "আপনার পাসওয়ার্ড পুনরায় সেট করতে এই ফর্মটি পূরণ করুন।",
-       "passwordreset-text-many": "{{PLURAL:$1|à¦\87মà§\87à¦\87লà§\87র à¦®à¦¾à¦§à§\8dযমà§\87 à¦\8fà¦\95à¦\9fি à¦\85সà§\8dথায়à§\80 à¦¶à¦¬à§\8dদà¦\9aাবি পেতে ঘরগুলির একটি পূরণ করুন।}}",
-       "passwordreset-legend": "শবà§\8dদà¦\9aাবি রিসেট",
-       "passwordreset-disabled": "à¦\8fà¦\87 à¦\89à¦\87à¦\95িতà§\87 à¦¶à¦¬à§\8dদà¦\9aাবি রিসেটের সুবিধা নিষ্ক্রিয় রয়েছে।",
+       "passwordreset-text-many": "{{PLURAL:$1|à¦\87মà§\87à¦\87লà§\87র à¦®à¦¾à¦§à§\8dযমà§\87 à¦\8fà¦\95à¦\9fি à¦\85সà§\8dথায়à§\80 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড পেতে ঘরগুলির একটি পূরণ করুন।}}",
+       "passwordreset-legend": "পাসà¦\93য়ারà§\8dড রিসেট",
+       "passwordreset-disabled": "à¦\8fà¦\87 à¦\89à¦\87à¦\95িতà§\87 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড রিসেটের সুবিধা নিষ্ক্রিয় রয়েছে।",
        "passwordreset-emaildisabled": "এই উইকিতে ইমেইল অপশনটি বন্ধ করা হয়েছে।",
        "passwordreset-username": "ব্যবহারকারী নাম:",
        "passwordreset-domain": "ডোমেইন:",
        "passwordreset-capture": "অনুসন্ধানের ফলাফলের ইমেইল দেখুন?",
-       "passwordreset-capture-help": "à¦\86পনি à¦¯à¦¦à¦¿ à¦\8fà¦\87 à¦ªà¦°à§\80à¦\95à§\8dষা à¦¬à¦\95à§\8dসà§\87 à¦\95à§\8dলিà¦\95 à¦\95রà§\87ন, à¦¤à¦¬à§\87 à¦\85সà§\8dথায়à§\80 à¦¶à¦¬à§\8dদà¦\9aাবিসহ একটি ইমেইল আপনাকে দেখানো হবে ও সেইসাথে ব্যবহারকারীকে তা পাঠানো হবে।",
+       "passwordreset-capture-help": "à¦\86পনি à¦¯à¦¦à¦¿ à¦\8fà¦\87 à¦ªà¦°à§\80à¦\95à§\8dষা à¦¬à¦\95à§\8dসà§\87 à¦\95à§\8dলিà¦\95 à¦\95রà§\87ন, à¦¤à¦¬à§\87 à¦\85সà§\8dথায়à§\80 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dডসহ একটি ইমেইল আপনাকে দেখানো হবে ও সেইসাথে ব্যবহারকারীকে তা পাঠানো হবে।",
        "passwordreset-email": "ইমেইল ঠিকানা:",
        "passwordreset-emailtitle": "{{SITENAME}} সাইটে ব্যবহারকারীর বিস্তারিত তথ্যাদি",
-       "passwordreset-emailtext-ip": "à¦\95à§\87à¦\89 à¦\8fà¦\95à¦\9cন (সমà§\8dভবত à¦\86পনি, $1 à¦\86à¦\87পি à¦ à¦¿à¦\95ানা à¦¥à§\87à¦\95à§\87) {{SITENAME}} ($4) à¦¸à¦¾à¦\87à¦\9fà§\87র à¦\9cনà§\8dয à¦\86পনার\nশবà§\8dদà¦\9aাবি বদলের জন্য অনুরোধ করেছে। নিচের ব্যবহারকারী {{PLURAL:$3|অ্যাকাউন্টটি|অ্যাকাউন্টগুলো}}\nএই ই-মেইল ঠিকানার সাথে সংযুক্ত:\n\n$2\n\n{{PLURAL:$3|এই অস্থায়ী পাসওয়ার্ডটি|এই অস্থায়ী পাসওয়ার্ডগুলো}} আগামী {{PLURAL:$5|এক দিন|$5 দিন}} পর মেয়াদোত্তীর্ণ হয়ে যাবে।\nআপনার অবশ্যই লগ-ইন করে একটি নতুন পাসওয়ার্ড পছন্দ করা উচিত। যদি অন্য কেউ এই অনুরোধ করে থাকে,\nঅথবা আপনি যদি পুরোনো পাসওয়ার্ড মনে করতে পারেন, এবং আপনার সেটি পরিবর্তন করার কোনো ইচ্ছা না থাকে, তবে\nআপনি এই বার্তাটি উপেক্ষা করতে পারে, এবং আপনার পুরোনো পাসওয়ার্ড ব্যবহার করা চালিয়ে যেতে পারেন।",
-       "passwordreset-emailtext-user": "বà§\8dযবহারà¦\95ারà§\80 $1 {{SITENAME}} ($4) à¦¸à¦¾à¦\87à¦\9fà§\87র à¦\9cনà§\8dয à¦\86পনার à¦¶à¦¬à§\8dদà¦\9aাবি বদলের জন্য অনুরোধ করেছে। নিচের ব্যবহারকারী {{PLURAL:$3|অ্যাকাউন্টটি|অ্যাকাউন্টগুলো}}\nএই ই-মেইল ঠিকানার সাথে সংযুক্ত:\n\n$2\n\n{{PLURAL:$3|এই অস্থায়ী পাসওয়ার্ডটি|এই অস্থায়ী পাসওয়ার্ডগুলো}} আগামী {{PLURAL:$5|এক দিন|$5 দিন}} পর মেয়াদোত্তীর্ণ হয়ে যাবে।\nআপনার অবশ্যই লগ-ইন করে একটি নতুন পাসওয়ার্ড পছন্দ করা উচিত। যদি অন্য কেউ এই অনুরোধ করে থাকে,\nঅথবা আপনি যদি পুরোনো পাসওয়ার্ড মনে করতে পারেন, এবং আপনার সেটি পরিবর্তন করার কোনো ইচ্ছা না থাকে, তবে\nআপনি এই বার্তাটি উপেক্ষা করতে পারে, এবং আপনার পুরোনো পাসওয়ার্ড ব্যবহার করা চালিয়ে যেতে পারেন।",
-       "passwordreset-emailelement": "বà§\8dযবহারà¦\95ারà§\80 à¦¨à¦¾à¦®: $1\nà¦\85সà§\8dথায়à§\80 à¦¶à¦¬à§\8dদà¦\9aাবি: $2",
-       "passwordreset-emailsent": "শবà§\8dদà¦\9aাবি বদলের একটি ই-মেইল পাঠানো হয়েছে।",
+       "passwordreset-emailtext-ip": "à¦\95à§\87à¦\89 à¦\8fà¦\95à¦\9cন (সমà§\8dভবত à¦\86পনি, $1 à¦\86à¦\87পি à¦ à¦¿à¦\95ানা à¦¥à§\87à¦\95à§\87) {{SITENAME}} ($4) à¦¸à¦¾à¦\87à¦\9fà§\87র à¦\9cনà§\8dয à¦\86পনার\nপাসà¦\93য়ারà§\8dড বদলের জন্য অনুরোধ করেছে। নিচের ব্যবহারকারী {{PLURAL:$3|অ্যাকাউন্টটি|অ্যাকাউন্টগুলো}}\nএই ই-মেইল ঠিকানার সাথে সংযুক্ত:\n\n$2\n\n{{PLURAL:$3|এই অস্থায়ী পাসওয়ার্ডটি|এই অস্থায়ী পাসওয়ার্ডগুলো}} আগামী {{PLURAL:$5|এক দিন|$5 দিন}} পর মেয়াদোত্তীর্ণ হয়ে যাবে।\nআপনার অবশ্যই লগ-ইন করে একটি নতুন পাসওয়ার্ড পছন্দ করা উচিত। যদি অন্য কেউ এই অনুরোধ করে থাকে,\nঅথবা আপনি যদি পুরোনো পাসওয়ার্ড মনে করতে পারেন, এবং আপনার সেটি পরিবর্তন করার কোনো ইচ্ছা না থাকে, তবে\nআপনি এই বার্তাটি উপেক্ষা করতে পারে, এবং আপনার পুরোনো পাসওয়ার্ড ব্যবহার করা চালিয়ে যেতে পারেন।",
+       "passwordreset-emailtext-user": "বà§\8dযবহারà¦\95ারà§\80 $1 {{SITENAME}} ($4) à¦¸à¦¾à¦\87à¦\9fà§\87র à¦\9cনà§\8dয à¦\86পনার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড বদলের জন্য অনুরোধ করেছে। নিচের ব্যবহারকারী {{PLURAL:$3|অ্যাকাউন্টটি|অ্যাকাউন্টগুলো}}\nএই ই-মেইল ঠিকানার সাথে সংযুক্ত:\n\n$2\n\n{{PLURAL:$3|এই অস্থায়ী পাসওয়ার্ডটি|এই অস্থায়ী পাসওয়ার্ডগুলো}} আগামী {{PLURAL:$5|এক দিন|$5 দিন}} পর মেয়াদোত্তীর্ণ হয়ে যাবে।\nআপনার অবশ্যই লগ-ইন করে একটি নতুন পাসওয়ার্ড পছন্দ করা উচিত। যদি অন্য কেউ এই অনুরোধ করে থাকে,\nঅথবা আপনি যদি পুরোনো পাসওয়ার্ড মনে করতে পারেন, এবং আপনার সেটি পরিবর্তন করার কোনো ইচ্ছা না থাকে, তবে\nআপনি এই বার্তাটি উপেক্ষা করতে পারে, এবং আপনার পুরোনো পাসওয়ার্ড ব্যবহার করা চালিয়ে যেতে পারেন।",
+       "passwordreset-emailelement": "বà§\8dযবহারà¦\95ারà§\80 à¦¨à¦¾à¦®: $1\nà¦\85সà§\8dথায়à§\80 à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড: $2",
+       "passwordreset-emailsent": "পাসà¦\93য়ারà§\8dড বদলের একটি ই-মেইল পাঠানো হয়েছে।",
        "passwordreset-emailsent-capture": "স্মরণ করিয়ে দেয়ার জন্য একটি ইমেইল করা হয়েছে, যা নিচে দেখানো হচ্ছে।",
        "passwordreset-emailerror-capture": "স্মরণ করিয়ে দেয়ার জন্য একটি ইমেইল তৈরী করা হয়েছিল, যা নিচে দেখানো হচ্ছে, তবে $1 {{GENDER:$2|ব্যবহারকারীকে}} এটি পাঠানো যায়নি!",
        "changeemail": "ই-মেইল ঠিকানা পরিবর্তন",
        "changeemail-header": "অ্যাকাউন্ট ই-মেইল ঠিকানা পরিবর্তন",
-       "changeemail-text": "à¦\87-মà§\87à¦\87ল à¦ à¦¿à¦\95ানা à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\95রতà§\87 à¦\86পনাà¦\95à§\87 à¦\8fà¦\87 à¦«à¦°à¦®à¦\9fি à¦ªà§\82রণ à¦\95রতà§\87 à¦¹à¦¬à§\87। à¦\8fà¦\87 à¦ªà¦°à¦¿à¦¬à¦°à§\8dতনà¦\9fি à¦¨à¦¿à¦¶à§\8dà¦\9aিত à¦\95রতà§\87 à¦\86পনার à¦¶à¦¬à§\8dদà¦\9aাবি (পাসà¦\93য়ারà§\8dড) প্রদানের প্রয়োজন হবে।",
+       "changeemail-text": "à¦\87-মà§\87à¦\87ল à¦ à¦¿à¦\95ানা à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\95রতà§\87 à¦\86পনাà¦\95à§\87 à¦\8fà¦\87 à¦«à¦°à¦®à¦\9fি à¦ªà§\82রণ à¦\95রতà§\87 à¦¹à¦¬à§\87। à¦\8fà¦\87 à¦ªà¦°à¦¿à¦¬à¦°à§\8dতনà¦\9fি à¦¨à¦¿à¦¶à§\8dà¦\9aিত à¦\95রতà§\87 à¦\86পনার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড প্রদানের প্রয়োজন হবে।",
        "changeemail-no-info": "এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই লগইন করতে হবে।",
        "changeemail-oldemail": "বর্তমান ই-মেইল ঠিকানা:",
        "changeemail-newemail": "নতুন ই-মেইল ঠিকানা:",
        "changeemail-none": "(কিছু নাই)",
-       "changeemail-password": "à¦\86পনার {{SITENAME}} à¦¶à¦¬à§\8dদà¦\9aাবি:",
+       "changeemail-password": "à¦\86পনার {{SITENAME}} à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড:",
        "changeemail-submit": "ই-মেইল পরিবর্তন",
        "changeemail-cancel": "বাতিল",
        "changeemail-throttled": "আপনি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।",
        "preview": "প্রাকদর্শন",
        "showpreview": "প্রাকদর্শন",
        "showdiff": "পরিবর্তনসমূহ",
+       "blankarticle": "<strong>সতর্ক বার্তা:</strong> আপনি একটি খালি পাতা তৈরী করতে যাচ্ছেন।\nআপনি যদি পুনরায় \"{{int:savearticle}}\" বাটন ক্লিক করেন তাহলে, পাতাটি তৈরী হবে যেখানে কোনো তথ্য লেখা নেই।",
        "anoneditwarning": "আপনি লগ ইন করেননি। এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি সংখ্যা সংরক্ষিত হবে।",
        "anonpreviewwarning": "আপনি লগ ইন করেননি। এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি সংখ্যা সংরক্ষিত হবে।",
        "missingsummary": "'''খেয়াল করুন''':  আপনি কিন্তু সম্পাদনার সারাংশ দেননি। আবার যদি \"সংরক্ষণ\" বোতামে ক্লিক করেন, তাহলে ঐ সারাংশ বাক্যটি ছাড়াই আপনার সম্পাদনা সংরক্ষিত হবে।",
        "loginreqtitle": "লগ-ইন প্রয়োজন",
        "loginreqlink": "লগ-ইন",
        "loginreqpagetext": "অন্যান্য পাতা দেখতে হলে আপনাকে অবশ্যই $1 হতে হবে।",
-       "accmailtitle": "শবà§\8dদà¦\9aাবি à¦ªà¦¾à¦ à¦¾à¦¨à§\8b à¦¹à¦¯à¦¼à§\87à¦\9bà§\87৷",
+       "accmailtitle": "পাসà¦\93য়ারà§\8dড à¦ªà¦¾à¦ à¦¾à¦¨à§\8b à¦¹à¦¯à¦¼à§\87à¦\9bà§\87",
        "accmailtext": "[[User talk:$1|$1]] এর জন্য দৈব ভাবে উৎপন্ন শব্দ চাবি $2 এ পাঠানো হয়েছে।\nলগ-ইন করার পর ''[[Special:ChangePassword|পাসওয়ার্ড পরিবর্তন]]'' পাতা থেকে এটি পরিবর্তন করা যাব।",
        "newarticle": "(নতুন)",
        "newarticletext": "আপনি এমন একটি লিংক অনুসরণ করছেন, যা নেই।\nপাতাটি তৈরি করতে, নিচের বাক্সে তা টাইপ করা শুরু করুন (আরও তথ্য জানতে [$1 সহায়িকা পাতা] দেখুন)।\nআপনি যদি ভুল করে এখানে এসে থাকেন, তাহলে আপনার ব্রাউজারের '''back''' বোতাম ক্লিক করুন।",
        "parser-template-recursion-depth-warning": "টেমপ্লেট পুনরাবৃত্তি (রিকার্শন) ডেপথ্‌ সীমা অতক্রম করেছে ($1)",
        "language-converter-depth-warning": "ভাষা পরিবর্তন ডেপথ্‌ সীমা অতক্রম করেছে ($1)",
        "node-count-exceeded-category": "যে সকল পাতার নোড কাউন্ট সীমানা পার হয়েছে",
+       "node-count-exceeded-category-desc": "পাতার সর্বোচ্চ নোড কাউন্ট সীমানা অতিক্রম করেছে।",
        "node-count-exceeded-warning": "পাতাটি নোড কাউন্ট সীমানা পার করেছে",
        "expansion-depth-exceeded-category": "যে সকল পাতার এক্সেপশন সীমানা অতিক্রম করেছে",
+       "expansion-depth-exceeded-category-desc": "পাতাটি সর্বোচ্চ এক্সপশন সীমানা অতিক্রম করেছে।",
        "expansion-depth-exceeded-warning": "পাতাটি এক্সেপশন সীমানা অতিক্রম করেছে",
        "parser-unstrip-loop-warning": "ত্রুটিপূর্ণ লুপ খুঁজে পাওয়া গিয়েছে",
        "parser-unstrip-recursion-limit": "লুপ রিকারশন সীমানা অতিক্রম করেছে ($1)",
        "rev-deleted-event": "(লগ অ্যাকশন সরানো হয়েছে)",
        "rev-deleted-user-contribs": "ব্যবহারকারীর নাম অথবা আইপি ঠিকানা অপসারিত হয়েছে - অবদান থেকে সম্পাদনা আড়াল করা হয়েছে",
        "rev-deleted-text-permission": "পাতার এই সংস্করণটি '''অপসারিত''' হয়েছে।\nবিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।",
+       "rev-suppressed-text-permission": "পাতার সংশোধনটি <strong>গোপন</strong> করা হয়েছে।\nবিস্তারিত বিবরণ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} গোপনকার্যের লগে] থাকতে পারে।",
        "rev-deleted-text-unhide": "পাতার এই সংস্করণটি '''অপসারিত''' হয়েছে।\nবিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।\nআপনি ইচ্ছা পোষণ করলে [$1 এই সংস্করণটি দেখতে পারেন]।",
        "rev-suppressed-text-unhide": "পাতার এই সংস্করণটি '''অপসারিত''' হয়েছে।\nবিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।\nআপনি ইচ্ছা পোষণ করলে [$1 এই সংস্করণটি দেখতে পারেন]।",
        "rev-deleted-text-view": "পাতার এই সংশোধনটি অপসারণ করা হয়েছে।\nআপনি এটি দেখতে পারেন; এ সংক্রাস্ত বিস্তারিত বিবরণ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} অবলুপ্তি লগে] থাকতে পারে।",
        "powersearch-togglelabel": "পরীক্ষা:",
        "powersearch-toggleall": "সকল",
        "powersearch-togglenone": "কিছু নয়",
+       "powersearch-remember": "ভবিষ্যত অনুসন্ধানগুলির জন্য নির্বাচন মনে রাখুন",
        "search-external": "বহিঃস্থ অনুসন্ধান",
        "searchdisabled": "{{SITENAME}} অনুসন্ধান এখন নিষ্ক্রিয় আছে। আপনি গুগলের মাধ্যমে অনুসন্ধান চালাতে পারেন। লক্ষ্য করুন যে {{SITENAME}}-এর বিষয়বস্তুর উপর গুগলের ইন্ডেক্সগুলি হালনাগাদ না-ও করা থাকতে পারে।",
        "search-error": "অনুসন্ধানের সময় একটি ত্রুটি হয়েছে: $1",
        "preferences": "আমার পছন্দ",
        "mypreferences": "পছন্দসমূহ",
        "prefs-edits": "সম্পাদনা সংখ্যা:",
-       "prefsnologintext2": "বà§\8dযবহারà¦\95ারà§\80 à¦ªà¦\9bনà§\8dদসমà§\82হ à¦¨à¦¿à¦°à§\8dধারনà§\87র à¦\9cনà§\8dয $1 করুন।",
+       "prefsnologintext2": "à¦\86পনার à¦ªà¦\9bনà§\8dদসমà§\82হ à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\95রতà§\87 à¦ªà§\8dরবà§\87শ করুন।",
        "prefs-skin": "আবরণ (Skin)",
        "skin-preview": "প্রাকদর্শন",
        "datedefault": "কোন পছন্দ নেই",
        "prefs-watchlist-edits-max": "সর্বোচ্চ নাম্বার: ১০০০",
        "prefs-watchlist-token": "নজরতালিকা টোকেন:",
        "prefs-misc": "বিবিধ",
-       "prefs-resetpass": "শবà§\8dদà¦\9aাবি পরিবর্তন",
+       "prefs-resetpass": "পাসà¦\93য়ারà§\8dড পরিবর্তন",
        "prefs-changeemail": "ই-মেইল পরিবর্তন",
        "prefs-setemail": "একটি ই-মেইল ঠিকানা নির্ধারণ করুন",
        "prefs-email": "ই-মেইল অপশন",
        "prefs-help-gender": "সেটিংসের এই পরিবর্তন ঐচ্ছিক।\nসফটওয়্যারে মাধ্যমে লিঙ্গ অনুযায়ী সম্বধনের ক্ষেত্রে এটি ব্যবহৃত হয়।\nএই তথ্য সকলের জন্য উন্মুক্ত থাকেবে।",
        "email": "ই-মেইল",
        "prefs-help-realname": "আসল নাম দেওয়া অনাবশ্যক। যদি আসল নাম দেন, তবে আপনার কাজের স্বীকৃতি দানে তা ব্যবহার করা হবে।",
-       "prefs-help-email": "ই-মেইল ঠিকানা ঐচ্ছিক, তবে শব্দচাবি ভুলে গেলে নতুন করে শব্দচাবি নিতে এটির প্রয়োজন হবে।",
+       "prefs-help-email": "ইমেইল ঠিকানা ঐচ্ছিক, তবে পাসওয়ার্ড ভুলে গেলে নতুন করে পাসওয়ার্ড নিতে এটির প্রয়োজন হবে।",
        "prefs-help-email-others": "আপনি আপনার পরিচয় প্রকাশ না করেও আপনার ব্যবহারকারী অথবা আলাপ পাতাটির মাধ্যমে অন্যদেরকে আপনার সাথে যোগাযোগ করতে দিতে পারেন।",
        "prefs-help-email-required": "ই-মেইল ঠিকানা আবশ্যক।",
        "prefs-info": "সাধারণ তথ্য",
        "recentchanges-legend-heading": "'''ব্যাখ্যামূলক বর্ণনা:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (আরও দেখুন [[Special:NewPages|নতুন পাতার তালিকা]])",
        "recentchanges-legend-plusminus": "(''±১২৩'')",
-       "rcnotefrom": "<strong>$2</strong>টা থেকে সংঘটিত পরিবর্তনগুলি (সর্বোচ্চ <strong>$1টি</strong> দেখানো হয়েছে)",
+       "rcnotefrom": "<strong>$2</strong>টা থেকে সংঘটিত পরিবর্তনগুলি (সর্বোচ্চ <strong>$1টি</strong> দেখানো হয়েছে)",
        "rclistfrom": "$2, $3 তারিখের পর সংঘটিত নতুন পরিবর্তনগুলো দেখাও",
        "rcshowhideminor": "অনুল্লেখ্য পরিবর্তনগুলো $1",
        "rcshowhideminor-show": "দেখাও",
        "license": "লাইসেন্সকরণ:",
        "license-header": "লাইসেন্স প্রদান",
        "nolicense": "কিছুই নির্বাচন করা হয়নি",
+       "licenses-edit": "লাইসেন্স অপশন সম্পাদনা করুন",
        "license-nopreview": "(প্রাকদর্শন লভ্য নয়)",
        "upload_source_url": " (একটি বৈধ, উন্মুক্ত URL)",
        "upload_source_file": " (আপনার কম্পিউটারের একটি ফাইল)",
        "wantedtemplates": "আবশ্যিক টেম্পলেটগুলো",
        "mostlinked": "যেসব পাতার প্রতি সবচেয়ে বেশি সংযোগ আছে",
        "mostlinkedcategories": "যেসব বিষয়শ্রেণীর প্রতি সবচেয়ে বেশি সংযোগ আছে",
-       "mostlinkedtemplates": "যà§\87সব à¦\9fà§\87মপà§\8dলà§\87à¦\9fà§\87 à¦¸à¦¬à¦\9aà§\87য়à§\87 à¦¬à§\87শি à¦¸à¦\82যà§\8bà¦\97 à¦\86à¦\9bà§\87",
+       "mostlinkedtemplates": "সবà¦\9aà§\87য়à§\87 à¦¬à§\87শি à¦\85নà§\8dতরà§\8dভà§\81à¦\95à§\8dত à¦ªà¦¾à¦¤à¦¾",
        "mostcategories": "সবচেয়ে বেশী বিষয়শ্রেণী-সমৃদ্ধ নিবন্ধসমূহ",
        "mostimages": "যেসব ফাইলের দিকে সবচেয়ে বেশি সংযোগ আছে",
        "mostinterwikis": "সবচেয়ে বেশী ইন্টারউইকি লিংক-সমৃদ্ধ নিবন্ধসমূহ",
        "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": "নিচে $3, $4 তারিখ থেকে বিগত {{PLURAL:$2|১ ঘন্টায়|'''$2''' ঘন্টায়}} সংঘটিত {{PLURAL:$1|শেষ ১টি পরিবর্তন|শেষ '''$1'''টি পরিবর্তন}} দেখানো হল।",
+       "wlnote": "নিচে $3, $4 তারিখ থেকে বিগত {{PLURAL:$2|১ ঘন্টায়|<strong>$2</strong> ঘন্টায়}} সংঘটিত {{PLURAL:$1|শেষ ১টি পরিবর্তন|শেষ <strong>$1টি</strong> পরিবর্তন}} দেখানো হল।",
        "wlshowlast": "দেখাও সর্বশেষ  $1 ঘণ্টা $2 দিন $3",
        "watchlist-options": "নজর তালিকা পছন্দসমূহ",
        "watching": "নজর রাখা হচ্ছে...",
        "autoblockid": "স্বয়ংক্রিয় বাধা #$1",
        "block": "ব্যবহারকারীকে বাধা দাও",
        "unblock": "ব্যবহারকারীর উপর থেকে বাধা অপসারণ",
-       "blockip": "ব্যবহারকারীকে বাধা দাও",
+       "blockip": "{{GENDER:$1|ব্যবহারকারীকে}} বাধা দাও",
        "blockip-legend": "ব্যবহারকারীকে বাধা দেওয়া হোক",
        "blockiptext": "কোন নির্দিষ্ট আইপি ঠিকানা বা ব্যবহারকারীর লেখার অধিকারে বাধা দিতে নিচের ফর্মটি ব্যবহার করুন।\nএটি কেবলমাত্র ধ্বংসপ্রবণতা প্রতিরোধে ও [[{{MediaWiki:Policy-url}}|নীতিমালা]] মেনে সম্পাদন করা উচিত।\nনিচে একটি নির্দিষ্ট কারণ দিন (উদাহরণস্বরূপ, যেসব পাতার ধ্বংসসাধন করা হয়েছে, সেগুলি উল্লেখ করতে পারেন)।",
        "ipaddressorusername": "আইপি ঠিকানা বা ব্যবহারকারীর নাম:",
        "ipb-unblock-addr": "$1-এর উপর থেকে বাধা তুলে নেওয়া হোক",
        "ipb-unblock": "ব্যবহারকারী বা আইপি ঠিকানার উপর থেকে বাধা তুলে নেওয়া হোক",
        "ipb-blocklist": "বিদ্যমান বাধাগুলি দেখুন",
-       "ipb-blocklist-contribs": "$1 এর অবদানসমূহ",
+       "ipb-blocklist-contribs": "{{GENDER:$1|$1}}-এর অবদানসমূহ",
        "unblockip": "ব্যবহারকারীর উপর থেকে বাধা তুলে নেওয়া হোক",
        "unblockiptext": "নিচের ফর্মটি ব্যবহার করে পূর্বে বাধা দেওয়া কোন আইপি ঠিকানা বা ব্যবহারকারীর সাইটে লেখার অধিকার পুনঃপ্রতিষ্ঠা করুন।",
        "ipusubmit": "বাধা তুলে নেওয়া হোক",
        "logentry-rights-rights": "$1 ব্যবহারকারী, $3 এর দলগত সদস্যপদ $4 থেকে $5 এ {{GENDER:$2|পরিবর্তন}} করেছেন",
        "logentry-rights-rights-legacy": "$1 দলের সদস্যপদ পরিবর্তন করেছেন {{GENDER:$2|changed}} এর জন্য $3",
        "logentry-rights-autopromote": "$1 সয়ংক্রিয়ভাবে $4 থেকে $5 এ {{GENDER:$2|উন্নীত}} হয়েছে",
+       "logentry-upload-upload": "$1 $3 {{GENDER:$2|আপলোড করেছেন}}",
+       "logentry-upload-overwrite": "$1 $3-এর একটি নতুন সংস্করণ {{GENDER:$2|আপলোড করেছেন}}",
+       "logentry-upload-revert": "$1 $3 {{GENDER:$2|আপলোড করেছেন}}",
        "rightsnone": "(কিছু নাই)",
        "feedback-bugornote": "কারিগরী ত্রুটির বিস্তারিত বর্ণনা জানতে [$1 বাগ রিপোর্ট করুন]।\nঅথবা নিচের এই সরল ফর্মটি ব্যবহার করতে পারেন। \"[$3 $2]\" পাতায় আপনার ব্যবহারকারী নাম সহ মন্তব্যটি প্রকাশিত হবে।",
        "feedback-subject": "বিষয়:",
        "action-pagelang": "পাতার ভাষা পরিবর্তন করুন",
        "log-name-pagelang": "ভাষা পরিবর্তন লগ",
        "log-description-pagelang": "এটি পাতার ভাষা পরিবর্তনের লগ।",
-       "logentry-pagelang-pagelang": "$1 পাতার ভাষা $3 এর জন্য $4 থেকে $5 এ {{GENDER:$2|পরিবর্তন}} করেছেন।"
+       "logentry-pagelang-pagelang": "$1 পাতার ভাষা $3 এর জন্য $4 থেকে $5 এ {{GENDER:$2|পরিবর্তন}} করেছেন।",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (সক্রিয় করা)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''নিষ্ক্রিয় করা''')"
 }
index 7b5d255..434232e 100644 (file)
        "talkpagelinktext": "གཏམ་གླེང།",
        "specialpage": "དམིགས་གསལ་ཤོག་ངོས།",
        "personaltools": "སྒེར་ཀྱི་ལག་ཆ།",
-       "postcomment": "སྡེ་ཚན་གསར་བ།",
        "articlepage": "ནང་དོན་ཤོག་ངོས་ལ་ལྟ་བ།",
        "talk": "གྲོས་བསྡུར།",
        "views": "ལྟ་ཞིབ།",
        "illegal-filename": "ཡིག་ཆའི་མིང་འདི་ལ་ཆོག་མཆན་མི་འདུག",
        "uploadwarning": "ཡར་འཇུག་སྔོན་བརྡ།",
        "savefile": "ཡིག་ཆ་ཉོར་ཅིག",
-       "uploadedimage": "\"[[$1]]\"ཡར་འཇུག་བྱས་ཟིན།",
        "uploaddisabled": "ཡར་འཇུག་ནུས་མེད་བཟོས་འདུག",
        "watchthisupload": "ཡིག་ཆ་འདི་ལ་གཟིགས།",
        "license": "གན་རྒྱ་ནང་ཞུགས་པ།",
index 6358b2d..3da2377 100644 (file)
        "talkpagelinktext": "য়্যারি",
        "specialpage": "বিশেষ পাতাহান",
        "personaltools": "নিজস্ব আতিয়ার",
-       "postcomment": "নুৱা অনুচ্ছেদহান",
        "articlepage": "নিবন্ধ চেইক",
        "talk": "য়্যারী",
        "views": "চা",
        "externaldberror": "ডাটেবেজর মা বেসেপ আহান ইসে নাইলে তরতা বারেদের একাউন্ট বদালানির য়্যাথাং নেই।",
        "login": "হমানি",
        "nav-login-createaccount": "লগইন / একাউন্ট খুল",
-       "loginprompt": "তি যেসাদেউ হমাসি {{SITENAME}} পাতা এহানর কুকিসর য়্যাথাঙ দে।",
        "userlogin": "হমানি / নৱা একাউন্ট খুলানি",
        "userloginnocreate": "লগইন",
        "logout": "নিকুলানি",
        "searchprofile-advanced-tooltip": "নিজর লেপকরা নাঙথাকে বিসারা",
        "search-result-size": "$1 ({{PLURAL:$2|1 ৱাহি|$2 ৱাহিহানি}})",
        "search-result-category-size": "{{PLURAL:$1 | 1 সদস্য | $1 সদস্যগি}} ({{PLURAL:$2 | 1 উপবিষয়থাকহানি | $2 হান}}, {{PLURAL:$3 | 1 ফাইল | $3 ফাইল}})",
-       "search-result-score": "মান্নপা $1%",
        "search-redirect": "(বারোআলথক $1)",
        "search-section": "(অনুচ্ছেদ $1)",
        "search-suggest": "তি হয়ত মাতানি চারতা: $1",
        "illegalfilename": "\"$1\" ফাইলর নাঙহাত থকনেই মেয়েক মিহিসে যেতা  পাতাহার চিঙনাঙে বরানি নাকরব।\nআরাক নুৱা নাঙ আহান দিয়া কাকর।",
        "badfilename": "ফাইলগর নাঙহান পতিয়া $1\" করানি ইল।",
        "savefile": "ফাইল ইতু",
-       "uploadedimage": "আপলোডকরানি অইল \"[[$1]]\"",
        "upload-source": "ফাইলর উৎস",
        "upload-options": "আপলোডর পছনহানি",
        "watchthisupload": "ফাইলগ খিয়ালে থ",
index 4cbfc49..0203515 100644 (file)
@@ -6,18 +6,18 @@
                        "GerardM",
                        "Huji",
                        "Meno25",
-                       "Mogoeilor"
+                       "Mogoeilor",
+                       "아라"
                ]
        },
        "tog-underline": "لینکهای خط به زیر",
        "tog-hideminor": "من ته نبیدن تغییرات کوچیک",
-       "tog-extendwatchlist": "Ú¯Ù¾ Ú©Ø±Ø¯Ù\86 Ù\84Û\8cستÙ\87اÛ\8c Ù\85Ù\86 ØªÙ\87 Ø³Û\8c Ø¯Û\8cدÙ\86 Ù\87Ù\85Ù\87 ØªØºÛ\8cÛ\8cراتÛ\8c Ú©Ù\87 Ø§Ø¨Ù\88Ù\87",
+       "tog-extendwatchlist": "Ú¯Ù¾ Ú©Ø±Ø¯Ù\86 Ù\86Ù\88Ù\85 Ú¯Ù\87 Ø¢ Ù\85Ù\88 Ø³Û\8c Ø¯Û\8cئÙ\86 Ù\87Ù\85Ù\87 Ø¢Ù\84شتا Ù\86Ù\87 Ù\81Ù\82Ø· Ù\87Ù\88Ù\86Ù\88 Ú©Ù\87 Ø¨Û\8cشتر Ø² Ù\87Ù\85Ù\87 Ø§Ù\86جÙ\88Ù\85 Ø§Ø¨Ù\88Ù\86.",
        "tog-usenewrc": "گپ کردن تغییرات آخری - جاوااسکریپت",
        "tog-numberheadings": "شماره وندن خودکار سی سرخط ها",
        "tog-showtoolbar": "نشو دادن تغییرات  تولبار  یا   جای نشودادن ابزارها- جاوااسکریپت",
        "tog-editondblclick": "اصلاح صفحات با دوبار کلیک - جاوااسکریپت",
        "tog-editsectiononrightclick": "امکان اصلاح یه قسمت زه راه راست کلیک کردن رو عنوان  اوقسمت- جاوااسکریپت",
-       "tog-rememberpassword": "به حافظه کامپیوتر دادن نحوه ورودی خوم (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "tog-watchcreations": "اضاف کردن اوصفحاتی که خوم درست کردم به فهرست نمایشی",
        "tog-watchdefault": "اضاف کردن اوصفحاتی که خوم اصلاح کردم به فهرست نمایشی",
        "tog-watchmoves": "اضاف کردن صفحاتی که خوم جابجا کردم به فهرست نمایشی",
        "talkpagelinktext": "صحبت",
        "specialpage": "صفحه مخصوص",
        "personaltools": "ابزارهای شخصی",
-       "postcomment": "ارسال یک توضیح",
        "articlepage": "دیدن صفحه محتوا",
        "talk": "بحث",
        "views": "مشاهدات",
        "remembermypassword": "رمز اویدن به سیستم را دراین رایانه به خاطر بسپار (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "login": "اویدن به سیستم",
        "nav-login-createaccount": "اویدن به سیستم",
-       "loginprompt": "ایسا وا کوکی ها رافعال کنین سی اویدن به  {{SITENAME}}.",
        "userlogin": "اویدن به سیستم / درست کردن حساب کاربری",
        "logout": "رهدن زه سیستم",
        "userlogout": "رهدن زه سیستم",
        "recentchanges": "تغییرات اخیر",
        "recentchanges-feed-description": "ردیابی آخرین تغییرات  ویکی در ای خورد",
        "rcnotefrom": "در زیر تغییرات زه تاریخ <b>$2</b> آمده‌اند (تا <b>$1</b> مورد نشو داده ابوه).",
-       "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 به\n$2",
        "nextpage": "صفحه بعدی ($1)",
        "prevpage": "صفحه قبلی($1)",
        "allpagesfrom": "نمایش دادن صفحات با شروع زه:",
index 5b5c7a0..c1145a4 100644 (file)
        "hidden-category-category": "Rummadoù kuzhet",
        "category-subcat-count": "{{PLURAL:$2|N'eus er rummad-mañ nemet an isrummad da-heul.|{{PLURAL:$1|isrummad|$1 isrummad}} zo d'ar rummad-mañ diwar un hollad a $2.}}",
        "category-subcat-count-limited": "Er rummad-mañ e kaver an {{PLURAL:$1|isrummad-se|$1 isrummadoù-se}}.",
-       "category-article-count": "{{PLURAL:$2|N'eus er rummad-mañ nemet ar bajenn da-heul.|Emañ ar {{PLURAL:$1|bajenn da-heul|$1 pajenn da-heul}} er rummad-mañ, diwar un hollad a $2.}}",
-       "category-article-count-limited": "{{PLURAL:$1|Emañ ar bajenn|Emañ an $1 pajenn}} da-heul er rummad-mañ.",
+       "category-article-count": "{{PLURAL:$2|N'eus er rummad-mañ nemet ar bajenn da-heul.|Emañ {{PLURAL:$1|ar bajenn da-heul|an/ar $1 pajenn da-heul}} er rummad-mañ, diwar un hollad a $2.}}",
+       "category-article-count-limited": "{{PLURAL:$1|Emañ ar bajenn|Emañ an/ar $1 pajenn}} da-heul er rummad-mañ.",
        "category-file-count": "{{PLURAL:$2|N'eus er rummad-mañ nemet ar restr da-heul.|Emañ ar {{PLURAL:$1|restr|$1 restr}} da-heul er rummad-mañ, diwar un hollad a $2.}}",
        "category-file-count-limited": "{{PLURAL:$1|Emañ ar restr|Emañ an $1 restr}} da-heul er rummad-mañ.",
        "listingcontinuesabbrev": "(war-lerc'h)",
        "otherlanguages": "Yezhoù all",
        "redirectedfrom": "(Adkaset eus $1)",
        "redirectpagesub": "Pajenn adkas",
-       "lastmodifiedat": "Kemmoù diwezhañ degaset d'ar bajenn-mañ, d'an $1 da $2.",
+       "lastmodifiedat": "Kemmoù diwezhañ degaset d'ar bajenn-mañ, d'an/ar $1 da $2.",
        "viewcount": "Sellet ez eus bet {{PLURAL:$1|$1 wezh|$1 gwezh}} ouzh ar bajenn-mañ.",
        "protectedpage": "Pajenn warezet",
        "jumpto": "Mont da :",
index 2795034..d7ada3a 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Imdadb",
-                       "Southparkfan"
+                       "Southparkfan",
+                       "아라"
                ]
        },
        "sunday": "Yakşambe",
        "mytalk": "Kaná ítgap",
        "navigation": "Kasarşoní",
        "qbfind": "Paŧŧa",
-       "vector-action-addsection": "Púskun sarhál",
-       "vector-action-delete": "Mesa",
-       "vector-action-move": "Surif",
-       "vector-action-protect": "Rakk",
-       "vector-view-create": "Biná",
-       "vector-view-edit": "Radbadal",
-       "vector-view-history": "Lekav e ur",
-       "vector-view-view": "Xuán",
-       "vector-view-viewsource": "Bumpad e ur",
        "actions": "Amal ák",
        "namespaces": "Pin-jága ģák",
        "variants": "Badaldroşumk",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) e ur",
        "searchmenu-new": "'''Dá Vikí ŧí \"[[:$1]]\" panna ná biná kar!'''",
        "searchprofile-articles": "Nivişt panna ģák",
-       "searchprofile-project": "Ráhşon o bunkárem panna ģák",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Ar giŕá",
        "searchprofile-advanced": "Xúŕt",
        "searchprofile-articles-tooltip": "$1 ŧí paŧŧa",
-       "searchprofile-project-tooltip": "$1 ŧí paŧŧa",
        "searchprofile-images-tooltip": "Fáil átekin paŧŧpol",
        "searchprofile-everything-tooltip": "Ģuŧŧ nivişt áteŧí paŧŧpol (ítgap ná panna ģáteton avár)",
        "search-result-size": "$1 ({{PLURAL:$2|1 laoz|$2 laoz}})",
        "search-nonefound": "Just aná icc kaŧŧiá allav",
        "powersearch-legend": "Xúŕt paŧŧopol",
        "powersearch-ns": "Pin-jága ģáteŧí paŧŧopol:",
-       "powersearch-redir": "Aŕsoká panna ģátá cirr e nişán et",
        "preferences": "Gicenk",
        "mypreferences": "Kaná gicenk",
        "yourrealname": "Aslí pin",
        "recentchanges-label-minor": "Dá cunko radbadal as e",
        "recentchanges-label-bot": "Dá xudkár asená dú án maroko radbadal as e",
        "rcnotefrom": "Şefko raddobadal ák '''$2''' án maroko ('''$1''' iskán páş o)",
-       "rclistfrom": "$1 án púskuná radbadal áke nişán et",
+       "rclistfrom": "$3 $2 án púskuná radbadal áke nişán et",
        "rcshowhideminor": "Cunká radbadal áte $1",
        "rcshowhidebots": "Boŧ áte $1",
        "rcshowhideliu": "Drustírástí kárband áte $1",
        "upload": "Fáil laggif",
        "uploadlogpage": "Laggifing ná hisáb",
        "filedesc": "Bungapp",
-       "uploadedimage": "\"[[$1]]\" laggifingá",
        "license": "Muxtárnáma",
        "license-header": "Muxtárnáma",
        "file-anchor-link": "Fáil",
        "booksources-go": "Ráím",
        "log": "Lekav",
        "allpages": "Ģuŧŧ panna ģák",
-       "alphaindexline": "$1 án $2 iskán",
        "prevpage": "Mustko panna ($1)",
        "allpagesfrom": "Dáŕaŧ biná maroká panna ģáte nişán et:",
        "allpagesto": "Dáŕaŧ esar maroká panna ģáte nişán et:",
index fac19cc..bf0f1e2 100644 (file)
        "searchprofile-advanced-tooltip": "Traži u ostalim imenskim prostorima",
        "search-result-size": "$1 ({{PLURAL:$2|$2 riječ|$2 riječi}})",
        "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 podkategorija|$2 podkategorije|$2 podkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})",
-       "search-result-score": "Relevantnost: $1%",
        "search-redirect": "(preusmjeravanje $1)",
        "search-section": "(sekcija $1)",
        "search-suggest": "Da li ste mislili: $1",
        "uploadwarning": "Upozorenje pri slanju",
        "uploadwarning-text": "Molimo izmijeniti opis datoteke ispod i pokušajte kasnije.",
        "savefile": "Sačuvaj datoteku",
-       "uploadedimage": "poslato \"[[$1]]\"",
-       "overwroteimage": "postavljena nova verzija datoteke \"[[$1]]\"",
        "uploaddisabled": "Slanje fajlova je isključeno",
        "copyuploaddisabled": "Postavljanje putem URL nije omogućeno.",
        "uploaddisabledtext": "Postavljanje datoteka je onemogućeno.",
index 1ca779e..e11b71d 100644 (file)
        "badaccess-groups": "L'acció que heu soŀlicitat es limita als usuaris {{PLURAL:$2|del grup|dels grups}}: $1.",
        "versionrequired": "Cal la versió $1 del MediaWiki",
        "versionrequiredtext": "Cal la versió $1 del MediaWiki per a utilitzar aquesta pàgina. Vegeu [[Special:Version]]",
-       "ok": "OK",
+       "ok": "D’acord",
        "retrievedfrom": "Obtingut de «$1»",
        "youhavenewmessages": "Tens $1 ($2).",
        "youhavenewmessagesfromusers": "Tens $1 {{PLURAL:$3|d'un altre usuari|de $3 usuaris}} ($2).",
        "delete-edit-reasonlist": "Edita els motius d'eliminació",
        "delete-toobig": "Aquesta pàgina té un historial d'edicions molt gran, amb més de $1 {{PLURAL:$1|canvi|canvis}}. L'eliminació d'aquestes pàgines està restringida per a prevenir que hi pugui haver un desajustament seriós de la base de dades de tot el projecte {{SITENAME}} per accident.",
        "delete-warning-toobig": "Aquesta pàgina té un historial d'edicions molt gran, amb més de $1 {{PLURAL:$1|canvi|canvis}}. Eliminar-la podria suposar un seriós desajustament de la base de dades de tot el projecte {{SITENAME}}; aneu en compte abans dur a terme l'acció.",
+       "delete-cantedit": "No podeu suprimir la pàgina perquè no teniu permís per a editar-la.",
        "deleting-backlinks-warning": "'''Avís:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Altres pàgines]] enllacen o transclouen de la pàgina que esteu a punt de suprimir.",
        "rollback": "Reverteix edicions",
        "rollback_short": "Revoca",
        "expand_templates_output": "Resultat:",
        "expand_templates_xml_output": "Sortida XML",
        "expand_templates_html_output": "Sortida en HTML sense filtrar",
-       "expand_templates_ok": "OK",
+       "expand_templates_ok": "D’acord",
        "expand_templates_remove_comments": "Elimina els comentaris",
        "expand_templates_remove_nowiki": "Suprimeix l'etiqueta <nowiki> en el resultat",
        "expand_templates_generate_xml": "Mostra l'arbre XML",
index e5f06a4..a6fd625 100644 (file)
        "rclinks": "顯示$2日以內產生其$1回改變<br />$3",
        "diff": "差",
        "hist": "史",
-       "hide": "藏起",
-       "show": "顯示",
+       "hide": "",
+       "show": "",
        "minoreditletter": "~",
        "newpageletter": "!",
        "boteditletter": "^",
index 9a443dc..0b08299 100644 (file)
        "copyrightpage": "{{ns:project}}:Авторан бакъонаш",
        "currentevents": "ХӀинцлера хилларш",
        "currentevents-url": "Project:ХӀинцлера хилларш",
-       "disclaimers": "Бехк тӀе ца эцар",
-       "disclaimerpage": "Project:Бяхк тӀецалацар",
+       "disclaimers": "Бехк тӀецалацар",
+       "disclaimerpage": "Project:Бехк тӀецалацар",
        "edithelp": "ГӀо оцу тадарна",
        "mainpage": "Коьрта агӀо",
        "mainpage-description": "Коьрта агӀо",
        "databaseerror-error": "ГӀалат: $1",
        "laggedslavemode": "Тергам бе: агӀона чохь керла йаьхинарш ца хила мега.",
        "readonly": "Блоктоьхна дӀайаздар хаамийн бухе",
-       "enterlockreason": "Билгал де блоктохаран бахьна а и чекх йолу хан а.",
+       "enterlockreason": "Билгалде блоктохаран бахьна а и чекх йолу хан а.",
        "readonlytext": "АгӀонаш тӀетохар а кхин хийцамаш барна а блоктоьхна:\nБлокоьхначо биттина хаам: $1.",
        "missing-article": "ХӀокху чохь кароезаш йолу хьан дехарца йозан агӀонаш цакарийна «$1» $2.\n\nИштнарг наггахь хуьлу хьажораг дӀаяьккхина елахь я хийцам бина тиша хьажорагца дехьа гӀо гӀоьртича.\n\nНагахьсан гӀулкх цуьнах доьзна дацахь, хьуна карийна гӀирс латточехь гӀалат.\nДехар до, хаам бе оцуьнах [[Special:ListUsers/sysop|куьйгалхога]], гойтуш URL.",
        "missingarticle-rev": "(верси № $1)",
        "userlogin-yourpassword-ph": "Язъе хьай пароль",
        "createacct-yourpassword-ph": "Язъе пароль",
        "yourpasswordagain": "Юха язъе пароль:",
-       "createacct-yourpasswordagain": "Бакъ йе пароль",
+       "createacct-yourpasswordagain": "Бакъе пароль",
        "createacct-yourpasswordagain-ph": "Кхин цкъа язъе пароль",
        "remembermypassword": "Даглаца сан дӀаяздар хӀокху компьютеран тӀехь (цхьан $1 {{PLURAL:$1|дийнахь}})",
        "userlogin-remembermypassword": "Дагахь латт ве/е со",
        "missing-revision": "АгӀона «{{FULLPAGENAME}}» верси $1 яц.\n\nИшта хуьйла ширелла дӀаяьккхина агӀонан хьажораган дихьа делча.\nМа-дара хила мега [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀайаьхарш йолу тептар] чохь.",
        "userpage-userdoesnotexist": "Ишта декъашхочун дӀаяздар «<nowiki>$1</nowiki>» хӀинца дац. Хьажа билгал, хьуна бакъалла лаьий кхолла я хийцам ба хӀокху агӀон.",
        "userpage-userdoesnotexist-view": "«$1» ишта декъашхочун дӀаяздар дац.",
-       "blocked-notice-logextract": "ХӀара декъашхочун дӀаяздар блоктоьхна ду.\nЛахахь гойту блоктохаршан тептар чура тӀаьхьарлера дӀаяздар:",
+       "blocked-notice-logextract": "ХӀара декъашхочун дӀаяздар блоктоьхна ду.\nЛахахь гойту блоктохарийн тептар чура тӀаьхьарлера дӀаяздар:",
        "clearyourcache": "'''Билгалдаккхар.''' Ӏалашйинчул тӀехьа хийцамаш га браузеран кэш цӀанъян езаш хила мега.\n* '''Firefox / Safari:''' ''Shift'' цӀе йолу пиллиг лаьцна битна, гӀирсийн панелан тӀера тӀетаӀе ''Карлаяккха'' я ''Ctrl-F5'' я ''Ctrl-R'' (''⌘-R'' Mac тӀехь)\n* '''Google Chrome:''' ТӀетаӀе ''Ctrl-Shift-R'' (''⌘-Shift-R'' Mac тӀехь)\n* '''Internet Explorer:''' ''Ctrl'' лаьцна йитан, тӀетаӀе ''Карлаяккха'' я тӀетаӀе ''Ctrl-F5''\n* '''Opera:''' Кэш цӀанъяр харжа меню ''Инструменты → Настройки'' чохь",
        "usercssyoucanpreview": "'''ДӀаалар.''' ТӀетаӀае кнопка «{{int:showpreview}}», хьажа хьай керла CSS-файл Ӏалаш яле.",
        "userjsyoucanpreview": "'''ДӀаалар.''' ТӀетаӀае кнопка «{{int:showpreview}}», хьажа хьай керла JS-файл Ӏалаш яле.",
        "shown-title": "АгӀона чохь $1 {{PLURAL:$1|1=дӀаяздар|дӀаяздарш}} гайта",
        "viewprevnext": "Хьажа ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''ХӀокху вики чохь йолуш ю ишта агӀо «[[:$1]]»'''",
-       "searchmenu-new": "'''Кхолла ишта агӀо «[[:$1]]» хӀокху {{PLURAL:$2|0=|вики-проектехь.}}'''",
+       "searchmenu-new": "<strong>Кхолла «[[:$1]]» агӀо хӀокху вики-проектехь!</strong>\n{{PLURAL:$2|0=|Хьан лахарца карина.}}",
        "searchprofile-articles": "Къаьстина агlонаш",
        "searchprofile-images": "Мультимедиа",
        "searchprofile-everything": "Массанхьа",
        "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": "Кхин гlирсаш",
        "stub-threshold-disabled": "ДӀадайина",
        "recentchangesdays": "Керла нисдар гайта динахь:",
        "recentchangesdays-max": "Къезиг $1 {{PLURAL:$1|дена}}",
-       "recentchangescount": "Iад йитарца гойтуш долу нисдаршан дукхалла",
+       "recentchangescount": "Iад йитарца гойтуш долу нисдарийн дукхалла",
        "prefs-help-recentchangescount": "Гойту керла нисдарш, агӀонашан истори, тептарш.",
        "prefs-help-watchlist-token2": "Иза хьан тергаме могӀан къайла догӀа ду.\nМуьлха и хуучунна йиш ю хьан тергаме могӀам беша, цундела ма хаийта иза кхечаьрга. [[Special:ResetTokens|ТӀетаӀа йе кхуза и хьайга кхосса лууш делахь]].",
        "savedprefs": "Хьан гӀирс Ӏалашбина.",
        "right-editmyprivateinfo": "Хьан долара хаамаш нисбар (масала, электронан адрес, бакъ цӀе)",
        "right-editmyoptions": "Тае хьайн гӀоли хетарг",
        "right-rollback": "билгала агӀона тӀехьарчу декъашхочо дина нисдарш сиха юхадахар",
-       "right-markbotedits": "юхудохучу нисдаршан шаболх бечунна нисдарш аьлла билгало ян",
+       "right-markbotedits": "юхудохучу нисдарийн ботан нисдарш санна билгало ян",
        "right-noratelimit": "чехкалин доза дац",
        "right-import": "кхечу википедешкара агӀонаш импорт ян",
        "right-importupload": "файлаш чуяхарца агӀонаш импорт ян",
        "recentchanges-label-plusminus": "байташкахь барам хийцар",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (хьажа кхин [[Special:NewPages|керла агӀонийн могӀа]])",
        "rcnotefrom": "Лахахь гайтина тӀера <strong>$2</strong> (хийцамаш <strong>$1</strong> кӀезиг).",
-       "rclistfrom": "Гайта хийцам оцу $3 $2",
+       "rclistfrom": "Гайта хийцам $3 $2 хан",
        "rcshowhideminor": "$1 кегийра нисдарш",
        "rcshowhideminor-show": "Гайта",
        "rcshowhideminor-hide": "Къайладаха",
        "rcshowhidemine": "$1 айхьа нисдинарш",
        "rcshowhidemine-show": "Гайта",
        "rcshowhidemine-hide": "Къайладаха",
-       "rclinks": "Гайта тlаьхьара $1 хийцамаш оцу $2 ден<br />$3",
+       "rclinks": "Гайта тӀаьхьара $1 хийцамаш $2 ден<br />$3",
        "diff": "тейп тайпнара",
        "hist": "истори",
        "hide": "Къайлаяккха",
        "file-deleted-duplicate": "Иштта файл ([[:$1]]) хӀинцале дӀаяьккхина хилла. Дехар до, юху файл чуяккхале файл дӀаяккхаран историга хьажа.",
        "uploadwarning": "Дlахьедар",
        "uploadwarning-text": "Дехар до, лахара файлах лаьцнарг хийца а дай юху а гӀорта файл чуяккха.",
-       "savefile": "ДӀаязе йе файл",
+       "savefile": "ДӀаязъе файл",
        "uploaddisabled": "Чуяккхар магийна дац",
        "copyuploaddisabled": "URL тӀера чуяккхар дӀадайина ду.",
        "uploaddisabledtext": "Файлаш чуяхар дӀадайина ду.",
        "watchlist-options": "Тергаме могlаман гlирс нисбар",
        "watching": "Тергаме мlогаман юкъаяккха…",
        "unwatching": "Тергаме могӀанан чура дӀаяккхар…",
-       "enotif_reset": "Билгал йаь ерриге агӀонаш хьаьжна санна",
+       "enotif_reset": "Билгалъе ерриге агӀонаш хьаьжна санна",
        "enotif_impersonal_salutation": "Декъашхо {{grammar:genitive|{{SITENAME}}}}",
        "enotif_subject_deleted": "Проектан «{{SITENAME}}» агӀо «$1» {{gender:$2|декъашхочо}} $2 дӀаяьккхина",
        "enotif_subject_created": "Проектан «{{SITENAME}}» агӀо «$1» {{gender:$2|декъашхочо}} $2 кхоьллина",
        "protect_expiry_old": "Хан чаккхе — хьалхалера.",
        "protect-unchain-permissions": "Схьабелла кхин гӀорралин гӀирс",
        "protect-text": "Кхузéхь хьо хьажало хийцалуш гӀароллин локхалла оцу агӀонашна '''$1'''.",
-       "protect-locked-access": "Хьан дlаязваларéхь тоъал бакъо яц гlароллийн локхаллéхь агlон хийцам бá. Дlадоьлху хlоттийнарш оцу агlонна '''$1''':",
+       "protect-locked-access": "Хьан дӀаяздаран тоъал бакъо яц гӀароллийн локхаллéхь агӀон хийцам бá. ДӀадоьлху хӀоттийнарш агӀонна '''$1''':",
        "protect-cascadeon": "Хlара агlо гlароллийца ю, хlунд аьлча иза латийна {{PLURAL:$1|1=лахахьа гойтучу агlонца, цуьнца хlоттийна|лахахьа гойтучу агlоншца, цаьрца хlоттийна}} чахчарийца гlаролла. Хьога хийцалур ю гlаролли локхалла хlокху агlон, амма оцо хийцам бийра бац чахчарехь йолучу гlароллийна.",
        "protect-default": "Гlаролла йоцуш",
        "protect-fallback": "Бакъо оьшу «$1»",
        "protect-othertime-op": "кхин хан",
        "protect-otherreason": "Кхин бахьна/тӀетохар:",
        "protect-otherreason-op": "Кхин бахьна",
-       "protect-dropdown": "* ГӀоралла дарна баьхьаш \n** сих-сиха зулам дар \n** дуккха спам хилар\n** нисдаршан тӀом \n** гӀараялл агӀо",
+       "protect-dropdown": "* ГӀоралла дарна баьхьаш \n** сих-сиха зулам дар \n** дуккха спам хилар\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,цlкъа:infinite",
        "restriction-type": "Бакъонаш:",
        "sp-contributions-logs": "тéптарш",
        "sp-contributions-talk": "дийцаре",
        "sp-contributions-userrights": "декъашхочун бакъона урхалладар",
-       "sp-contributions-blocked-notice": "ХӀара декъашхочун дӀаяздар блоктоьхна ду.\nЛахахь гойту блоктохаршан тептар чура тӀаьхьарлера дӀаяздар:",
-       "sp-contributions-blocked-notice-anon": "ХӀара IP-адрес хӀинца блоктоьхна ду.\nЛахахь гойту блоктохаршан тептар чура тӀаьхьарлера дӀаяздар:",
+       "sp-contributions-blocked-notice": "ХӀара декъашхочун дӀаяздар блоктоьхна ду.\nЛахахь гойту блоктохарийн тептар чура тӀаьхьарлера дӀаяздар:",
+       "sp-contributions-blocked-notice-anon": "ХӀара IP-адрес хӀинца блоктоьхна ду.\nЛахахь гойту блоктохарийн тептар чура тӀаьхьарлера дӀаяздар:",
        "sp-contributions-search": "Къинхьегам лахар",
        "sp-contributions-username": "IP-адрес я декъашхочун цӀе:",
        "sp-contributions-toponly": "ТӀаьхьара бина хийцамаш гайта",
        "blocklist": "Блоктоьхна декъашхой",
        "ipblocklist": "Блоктоьхна декъашхой",
        "ipblocklist-legend": "Блоктоьхна декъашхо лахар",
-       "blocklist-userblocks": "ДӀахьулян дӀаяздаршан блоктохарш",
+       "blocklist-userblocks": "ДӀахьулян дӀаяздарийн блоктохарш",
        "blocklist-tempblocks": "ДӀахьулян цхьан ханна йолу блоктохарш",
        "blocklist-addressblocks": "ДӀахулдан цхьайолу IP адресан блоктохарш",
        "blocklist-rangeblocks": "ДӀахьулян блоктоьхна йолу диапазонаш",
        "exif-licenseurl": "Авторийн лицензин URL",
        "exif-morepermissionsurl": "Альтернативан лицензин хаам",
        "exif-pngfilecomment": "PNG-файлан билгалдаккхар",
-       "exif-disclaimer": "Бехк тӀе ца эцар",
+       "exif-disclaimer": "Бехк тӀецалацар",
        "exif-contentwarning": "Чулацамах лаьцна дӀахьедар",
        "exif-giffilecomment": "GIF-файлан билгалдаккхар",
        "exif-intellectualgenre": "ХӀуман тайп",
index 803e6f0..84c6ea2 100644 (file)
        "talkpagelinktext": "Hisgot",
        "specialpage": "Espesyal nga panid",
        "personaltools": "Personal nga galamiton",
-       "postcomment": "Pagbilin og komento",
        "articlepage": "Tan-awa ang panid sa sulod",
        "talk": "Panaghisgot-hisgot",
        "views": "Mga pagtan-aw",
        "externaldberror": "May nahitabong authentication database error o kaha wala ka tugoti nga mag-update sa imong eksternal nga akawnt.",
        "login": "Sulod",
        "nav-login-createaccount": "Rehistro / Dayon",
-       "loginprompt": "Kinahanglang naka-enable ang mga koki aron ikaw maka-log-in sa {{SITENAME}}.",
        "userlogin": "Rehistro / Dayon",
        "logout": "Biya",
        "userlogout": "Bıveciye",
        "recentchangeslinked-to": "Ipakita na lang ang mga pag-usab sa mga panid nga nakasumpay sa nahatag nga panid",
        "upload": "Pagsumiter og payl",
        "uploadlogpage": "Log sa upload",
-       "uploadedimage": "na-upload ang \"[[$1]]\"",
        "license": "Paglilisensya:",
        "license-header": "Paglilisensya",
        "file-anchor-link": "Payl",
index 96b48e0..6a2eddc 100644 (file)
        "talkpagelinktext": "Kuentusi",
        "specialpage": "Påhina espesiat",
        "personaltools": "Ramientan petsonat",
-       "postcomment": "Fa'tinas un komentu",
        "articlepage": "Atan i guinaha i påhina",
        "talk": "Diskuti",
        "views": "Mali'e'-ña",
        "yourdomainname": "Lugat-mu:",
        "login": "Log in",
        "nav-login-createaccount": "Hålom / fa'tinas kuenta-mu",
-       "loginprompt": "Un nesita muna'sedi cookies para un log in gi {{SITENAME}}.",
        "userlogin": "Hålom / fa'tinas kuenta-mu",
        "logout": "Log out",
        "userlogout": "Log out",
        "nextn": "{{PLURAL:$1|$1}} ni manmamaila'",
        "viewprevnext": "Atan i ($1 {{int:pipe-separator}} $2) ($3)",
        "search-result-size": "$1 ({{PLURAL:$2|1 na palabra|$2 na palabra siha}})",
-       "search-result-score": "Prinisisu: $1%",
        "search-redirect": "(na'dirihi $1)",
        "search-section": "(påtte $1)",
        "search-suggest": "Kao kumekeilek-mu: $1",
        "upload": "Na'kåtga hulu' i atkibu",
        "uploadbtn": "Na'kåtga hulu' atkibu",
        "uploadlogpage": "Na'kåtga i log",
-       "uploadedimage": "mana'kåtga hulu' \"[[$1]]\"",
        "listfiles": "Listan atkibu",
        "file-anchor-link": "Atkibu",
        "filehist": "Historian atkibu",
index 284f7c4..acf6959 100644 (file)
        "morenotlisted": "ئەم لیستەیە تەواو نییە",
        "mypage": "پەڕه‌",
        "mytalk": "لێدوان",
-       "anontalk": "Ù\88تÙ\88Ù\88Û\8eÚ\98 Ø¨Û\86 Ø¦Û\95Ù\85 Ø¦Ø§Û\8câ\80\8cÙ¾Û\8c یە",
+       "anontalk": "Ù\84Û\8eدÙ\88اÙ\86 Ø¨Û\86 Ø¦Û\95Ù\85 Ø¦Ø§Û\8cÙ¾Û\8cیە",
        "navigation": "ڕێدۆزی",
        "and": "&#32;و",
        "qbfind": "بدۆزەرەوە",
        "undo-success": "دەکرێ دەستکاریەکە پووچەڵبکرێتەوە.\nتکایە چاو لەو هەڵسەنگاندنەی خوارەوە بکە تا دڵنیا بیت ئەمە ئەوەیە کە‌ دەتویست بیکەی و دواتر گۆڕانکارییەکانی خوارەوە پاشەکەوت بکە بۆ تەواوکردنی پووچەڵکردنەوەکە.",
        "undo-failure": "لەبەر کێشەی دەست‌تێ‌وەردان، ناتوانی دەستکاریەکە ئەنجام‌نەدراو بکەیت.",
        "undo-norev": "ناتوانی دەستکاریەکە ئەنجام‌نەدراو بکەی لەبەر ئەوەی بوونی نیە یا سڕدراوەتەوە.",
-       "undo-summary": "Ú¯Û\95Ú\95اÙ\86دÙ\86Û\95Ù\88Û\95Û\8c Ù¾Û\8eداÚ\86Ù\88Ù\88Ù\86Û\95Ù\88Û\95Û\8c $1 Ù\84Û\95 Ù\84اÛ\8cÛ\95Ù\86 [[Special:Contributions/$2|$2]] ([[User talk:$2|Ù\88تÙ\88Ù\88Û\8eÚ\98]])",
+       "undo-summary": "Ú¯Û\95Ú\95اÙ\86دÙ\86Û\95Ù\88Û\95Û\8c Ù¾Û\8eداÚ\86Ù\88Ù\88Ù\86Û\95Ù\88Û\95Û\8c $1 Ù\84Û\95 Ù\84اÛ\8cÛ\95Ù\86 [[Special:Contributions/$2|$2]] ([[User talk:$2|Ù\84Û\8eدÙ\88اÙ\86]])",
        "cantcreateaccounttitle": "ناتوانرێت هەژمار دروست بکرێت",
        "cantcreateaccount-text": "درووست‌کردنی هەژمارە بۆ ناونیشانی ئای‌پی ('''$1''') لە لایەن [[User:$3|$3]] داخراوە.<br /><br />\n$3 هۆکاری \"$2\" خستوەتەڕوو",
        "viewpagelogs": "لۆگەکانی ئەم پەڕەیە ببینە",
        "rollbacklinkcount-morethan": "گەڕاندنەوەی زۆرتر لە $1 {{PLURAL:$1|دەستکاری}}",
        "rollbackfailed": "گەڕاندنەوە سەرکەوتوو نەبوو",
        "cantrollback": "دەستکاریەکان ناگەڕێندرێتەوە؛\nدوایین هاوبەش تەنها ڕێکخەری ئەم لاپەڕەیە.",
-       "alreadyrolled": "دÙ\88اÛ\8cÛ\8cÙ\86 Ú¯Û\86Ú\95اÙ\86کارÛ\8cÛ\95کاÙ\86Û\8c Ù\84Û\95سÛ\95ر [[:$1]] Ù\84Û\95 Ù\84اÛ\8cÛ\95Ù\86 [[User:$2|$2]] Ù\86اگÛ\95Ú\95Û\8eÙ\86درÛ\8eÙ\86Û\95Ù\88Û\95 ([[User talk:$2|Ù\88تÙ\88Ù\88Û\8eÚ\98]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]])Ø\9b Ú©Û\95سÛ\8eÚ©Û\8c Ø¯Û\8cÚ©Û\95 Ù\84Û\95 Ù¾Û\8eØ´â\80\8cدا Ø¯Û\95ستکارÛ\8c Ú©Ø±Ø¯Ù\88Ù\88Û\95 Û\8cاÙ\86 Ú¯Û\95Ú\95اÙ\86دÙ\88Ù\88Û\8cÛ\95تÛ\95Ù\88Û\95.\n\nدÙ\88اÛ\8cÛ\8cÙ\86 Ø¯Û\95ستکارÛ\8c Ø¦Û\95Ù\85 Ù\84اپÛ\95Ú\95Û\95 [[User:$3|$3]] Ú©Ø±Ø¯Ù\88Ù\88Û\8cÛ\95 ([[User talk:$3|Ù\88تÙ\88Ù\88Û\8eÚ\98]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
+       "alreadyrolled": "دÙ\88اÛ\8cÛ\8cÙ\86 Ú¯Û\86Ú\95اÙ\86کارÛ\8cÛ\8cÛ\95کاÙ\86 Ù\84Û\95سÛ\95ر [[:$1]] Ù\84Û\95 Ù\84اÛ\8cÛ\95Ù\86 [[User:$2|$2]] Ù\86اگÛ\95Ú\95Û\8eÙ\86درÛ\8eÙ\86Û\95Ù\88Û\95 ([[User talk:$2|Ù\84Û\8eدÙ\88اÙ\86]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]])Ø\9b Ú©Û\95سÛ\8eÚ©Û\8c ØªØ± Ù\84Û\95 Ù¾Û\8eشدا Ø¯Û\95ستکارÛ\8cÛ\8c Ú©Ø±Ø¯Ù\88Ù\88Û\95 Û\8cاÙ\86 Ú¯Û\95Ú\95اÙ\86دÙ\88Ù\88Û\8cÛ\95تÛ\95Ù\88Û\95.\n\nدÙ\88اÛ\8cÛ\8cÙ\86 Ø¯Û\95ستکارÛ\8c Ø¦Û\95Ù\85 Ù¾Û\95Ú\95Û\95 [[User:$3|$3]] Ú©Ø±Ø¯Ù\88Ù\88Û\8cÛ\95 ([[User talk:$3|Ù\84Û\8eدÙ\88اÙ\86]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "پوختەی دەستکاری \"''$1''\" بوو.",
        "revertpage": "گەڕاندنەوەی دەستکارییەکانی [[Special:Contributions/$2|$2]] ([[User talk:$2|لێدوان]]) بۆ دوایین پێداچوونەوەی [[User:$1|$1]]",
        "revertpage-nouser": "دەستکارییەکانی بەکارھێنەرێکی شاڕدراوە بۆ دوایین پێداچوونەوەی {{GENDER:$1|[[User:$1|$1]]}} گەڕێنرایەوە.",
        "noautoblockblock": "بەربەستنی خۆگەڕ ناچالاکە",
        "createaccountblock": "دروستکردنی ھەژمار ناچالاکە",
        "emailblock": "ئیمەیل ناچالاکە",
-       "blocklist-nousertalk": "دÛ\95ستکارÛ\8cکردÙ\86Û\8c Ù¾Û\95Ú\95Û\95Û\8c Ù\88تÙ\88Ù\88Û\8eÚ\98ی خۆی ناچالاکە",
+       "blocklist-nousertalk": "دÛ\95ستکارÛ\8cکردÙ\86Û\8c Ù¾Û\95Ú\95Û\95Û\8c Ù\84Û\8eدÙ\88اÙ\86ی خۆی ناچالاکە",
        "ipblocklist-empty": "لیستی بەربەستەکان بەتاڵە",
        "ipblocklist-no-results": "ئای‌پی ئەدرەس یان ناوی‌ بەکارهێنەری داواکراو بەربەست نەکراوە.",
        "blocklink": "بەربەستن",
        "block-log-flags-nocreate": "دروستکردنی ھەژمار ناچالاک کرا",
        "block-log-flags-noautoblock": "بەربەستنی خۆگەڕ ناچالاک کرا",
        "block-log-flags-noemail": "ئیمەیل ناچالاک کرا",
-       "block-log-flags-nousertalk": "دÛ\95ستکارÛ\8cکردÙ\86Û\8c Ù¾Û\95Ú\95Û\95Û\8c Ù\88تÙ\88Ù\88Û\8eÚ\98ی خۆی ناچالاک کرا",
+       "block-log-flags-nousertalk": "دÛ\95ستکارÛ\8cکردÙ\86Û\8c Ù¾Û\95Ú\95Û\95Û\8c Ù\84Û\8eدÙ\88اÙ\86ی خۆی ناچالاک کرا",
        "block-log-flags-angry-autoblock": "بەربەستکردنی خۆگەڕی پێشکەوتوو چالاک کرا",
        "block-log-flags-hiddenname": "ناوی بەکارھێنەری شاراوە",
        "range_block_disabled": "تایبەتمەندی بەڕێوەبەر بۆ بەربەست‌کردنی زنجیرە لە کارخستراوە.",
        "movepage-moved-noredirect": "لە دانانی ڕەوانەکەر بەرگری کرا.",
        "articleexists": "پەڕەیەک بەم ناوە ھەیە یان ئەو ناوەی تۆ ھەڵتبژاردووە ڕێگەی پێنەدراوە.\nتکایە ناوێکی دیکە ھەڵبژێرە.",
        "cantmove-titleprotected": "ناتوانی لاپەڕەیەک بگوێزیتەوە بۆ ئەم شوێنە، لەبەر ئەوەی سەردێڕی نوێ لە درووست‌کردن پارێزراوە.",
-       "movetalk": "Ù¾Û\95Ú\95Û\95Û\8c Ù\88تÙ\88Ù\88Û\8eÚ\98ی پەیوەندیدار بگوازەوە",
+       "movetalk": "Ù¾Û\95Ú\95Û\95Û\8c Ù\84Û\8eدÙ\88اÙ\86ی پەیوەندیدار بگوازەوە",
        "move-subpages": "ژێرپەڕەکانی بگوازەوە (ھەتا $1 پەڕە)",
-       "move-talk-subpages": "Ú\98Û\8eرپÛ\95Ú\95Û\95کاÙ\86Û\8c Ù¾Û\95Ú\95Û\95Û\8c Ù\88تÙ\88Ù\88Û\8eÚ\98 بگوازەوە (ھەتا $1 پەڕە)",
+       "move-talk-subpages": "Ú\98Û\8eرپÛ\95Ú\95Û\95کاÙ\86Û\8c Ù¾Û\95Ú\95Û\95Û\8c Ù\84Û\8eدÙ\88اÙ\86 بگوازەوە (ھەتا $1 پەڕە)",
        "movepage-page-exists": "پەڕەی $1 هەیە و ناتوانرێت خۆکار بخرێتە جێی.",
        "movepage-page-moved": "پەڕەی $1 گۆزرایەوە بۆ $2.",
        "movepage-page-unmoved": "ناکرێ پەڕەی $1 بگوێزرێتەوە بۆ $2.",
index 1cbf870..01fe0c0 100644 (file)
        "talkpagelinktext": "discussione",
        "specialpage": "Pagina speciale",
        "personaltools": "Strumenti persunali",
-       "postcomment": "Nova sezione",
        "articlepage": "Vede l'articulu",
        "talk": "Discussione",
        "toolbox": "Stuvigli",
index 18ff1d5..a878acd 100644 (file)
        "talkpagelinktext": "Istoryahanay",
        "specialpage": "Pinasahi nga pahina",
        "personaltools": "Mga pangkaugalingon nga galamiton",
-       "postcomment": "Bag-o nga seksyon",
        "articlepage": "Ipakita ang pahina sang ka-undan",
        "talk": "Diskusyon",
        "views": "Mga dagway",
        "yourdomainname": "Imo domain:",
        "login": "Mag sulod",
        "nav-login-createaccount": "Magsulod / mag-ubra sang account",
-       "loginprompt": "Dapat nakabukas ang cookies para makasulod sa {{SITENAME}}.",
        "userlogin": "Mag sulod / mag-ubra account",
        "userloginnocreate": "Magsulod",
        "logout": "Maggwa",
        "upload": "Magkarga sang akta",
        "uploadlogpage": "Lista sang upload",
        "filedesc": "Kasumahan",
-       "uploadedimage": "na-upload ang \"[[$1]]\"",
        "license": "Paglaong:",
        "file-anchor-link": "Akta",
        "filehist": "Kasaysayan sang akta",
index 2a38313..bc24170 100644 (file)
        "talkpagelinktext": "Музакере",
        "specialpage": "Махсус Саифе",
        "personaltools": "Шахсий алетлер",
-       "postcomment": "Янъы болюк",
        "articlepage": "Саифеге бар",
        "talk": "Музакере",
        "views": "Корюнишлер",
        "externaldberror": "Сайткъа киргенде бир хата олды. Бу тыш эсабынъызны денъиштирмек акъкъынъыз олмагъанындан себеп мейдангъа келип ола.",
        "login": "Кириш",
        "nav-login-createaccount": "Кириш / Къайд олув",
-       "loginprompt": "Отурым ачмакъ ичюн «cookies»ге изин бермелисинъиз.",
        "userlogin": "Кириш / Къайд олув",
        "userloginnocreate": "Кириш",
        "logout": "Чыкъыш",
        "searchprofile-everything-tooltip": "Бутюн саифелерде (музакере саифелеринде де) къыдыр",
        "searchprofile-advanced-tooltip": "Бельгиленген исим фезаларында къыдыр",
        "search-result-size": "$1 ({{PLURAL:$2|1=1|$2}} сёз)",
-       "search-result-score": "Уйгъунлыкъ: $1 %",
        "search-redirect": "(ёллама $1)",
        "search-section": "(болюк $1)",
        "search-suggest": "Бунымы демеге истединъиз: $1",
        "file-exists-duplicate": "Бу файл ашагъыдаки {{PLURAL:$1|1=файлнынъ|файлларнынъ}} дубликаты ола:",
        "uploadwarning": "Тенби",
        "savefile": "Файлны сакъла",
-       "uploadedimage": "Юкленген: \"[[$1]]\"",
-       "overwroteimage": "\"[[$1]]\" янъы версиясы юкленди",
        "uploaddisabled": "Юклеме ясакълыдыр.",
        "uploaddisabledtext": "Файл юклеме ясакълыдыр.",
        "uploadscripted": "Бу файлда браузер тарафындан янълышнен ишленип олур HTML коду я да скрипт бар.",
        "watchlist-details": "Музакере саифелерини эсапкъа алмайып, козетюв джедвелинъизде {{PLURAL:$1|1=1|$1}} саифе бар.",
        "wlheader-enotif": "E-mail иле хабер берюв ачылды.",
        "wlheader-showupdated": "Сонъки зияретинъизден сонъ денъиштирильген саифелер '''къалын арифлернен''' косьтерильди.",
+       "wlnote": "Ашагъыда саат $3, $4 ичюн сонъки {{PLURAL:$2|1=саат|'''$2''' саат}} ичинде япылгъан сонъки {{PLURAL:$1|1=денъиштирме|'''$1''' денъиштирме}} косьтериле.",
        "wlshowlast": "Сонъки $1 саат ичюн, $2 кунь ичюн я да $3 косьтер",
        "watchlist-options": "Козетюв джедвели сазламалары",
        "watching": "Козетюв джедвелине кирсетильмекте...",
index 82e3a05..1e10057 100644 (file)
        "talkpagelinktext": "Muzakere",
        "specialpage": "Mahsus Saife",
        "personaltools": "Şahsiy aletler",
-       "postcomment": "Yañı bölük",
        "articlepage": "Saifege bar",
        "talk": "Muzakere",
        "views": "Körünişler",
        "externaldberror": "Saytqa kirgende bir hata oldı. Bu tış esabıñıznı deñiştirmek aqqıñız olmağanından sebep meydanğa kelip ola.",
        "login": "Kiriş",
        "nav-login-createaccount": "Kiriş / Qayd oluv",
-       "loginprompt": "Oturım açmaq içün \"cookies\"ge izin bermelisiñiz.",
        "userlogin": "Kiriş / Qayd oluv",
        "userloginnocreate": "Kiriş",
        "logout": "Çıqış",
        "searchprofile-everything-tooltip": "Bütün saifelerde (muzakere saifelerinde de) qıdır",
        "searchprofile-advanced-tooltip": "Belgilengen isim fezalarında qıdır",
        "search-result-size": "$1 ({{PLURAL:$2|1|$2}} söz)",
-       "search-result-score": "Uyğunlıq: $1%",
        "search-redirect": "(yollama $1)",
        "search-section": "(bölük $1)",
        "search-suggest": "Bunımı demege istediñiz: $1",
        "file-exists-duplicate": "Bu fayl aşağıdaki {{PLURAL:$1|faylnıñ|fayllarnıñ}} dublikatı ola:",
        "uploadwarning": "Tenbi",
        "savefile": "Faylnı saqla",
-       "uploadedimage": "Yüklengen: \"[[$1]]\"",
-       "overwroteimage": "\"[[$1]]\" yañı versiyası yüklendi",
        "uploaddisabled": "Yükleme yasaqlıdır.",
        "uploaddisabledtext": "Fayl yükleme yasaqlıdır.",
        "uploadscripted": "Bu faylda brauzer tarafından yañlışnen işlenip olur HTML kodu ya da skript bar.",
        "watchlist-details": "Muzakere saifelerini esapqa almayıp, közetüv cedveliñizde {{PLURAL:$1|1|$1}} saife bar.",
        "wlheader-enotif": "E-mail ile haber berüv açıldı.",
        "wlheader-showupdated": "Soñki ziyaretiñizden soñ deñiştirilgen saifeler '''qalın ariflernen''' kösterildi.",
+       "wlnote": "Aşağıda saat $3, $4 içün soñki {{PLURAL:$2|saat|'''$2''' saat}} içinde yapılğan soñki {{PLURAL:$1|deñiştirme|'''$1''' deñiştirme}} kösterile.",
        "wlshowlast": "Soñki $1 saat içün, $2 kün içün ya da $3 köster",
        "watchlist-options": "Közetüv cedveli sazlamaları",
        "watching": "Közetüv cedveline kirsetilmekte...",
index 8e52268..4564c7e 100644 (file)
        "hidetoc": "skrýt",
        "collapsible-collapse": "Sbalit",
        "collapsible-expand": "Rozbalit",
+       "confirmable-confirm": "Jste si {{GENDER:$1|jist|jista|jisti}}?",
+       "confirmable-yes": "Ano",
+       "confirmable-no": "Ne",
        "thisisdeleted": "Prohlédnout nebo obnovit $1?",
        "viewdeleted": "Zobrazit $1?",
        "restorelink": "{{PLURAL:$1|smazanou editaci|$1 smazané editace|$1 smazaných editací}}",
        "invalidtitle-knownnamespace": "Neplatný název se jmenným prostorem „$2“ a textem „$3“",
        "invalidtitle-unknownnamespace": "Neplatný název s neznámým číslem jmenného prostoru $1 a textem „$2“",
        "exception-nologin": "Nejste přihlášen(a)",
-       "exception-nologin-text": "Pro přístup na tuto stránku nebo k této akci se prosím [[Special:Userlogin|přihlaste]].",
+       "exception-nologin-text": "Pro přístup na tuto stránku nebo k této akci se musíte přihlásit.",
        "exception-nologin-text-manual": "Pro přístup na tuto stránku nebo k této akci se musíte $1.",
        "virus-badscanner": "Špatná konfigurace: neznámý antivirový program: ''$1''",
        "virus-scanfailed": "prověřování selhalo (kód $1)",
        "parser-template-recursion-depth-warning": "Překročen limit hloubky rekurzivního vkládání šablon ($1)",
        "language-converter-depth-warning": "Překročen limit vnoření u jazykové konverze ($1)",
        "node-count-exceeded-category": "Stránky překračující počet uzlů",
-       "node-count-exceeded-category-desc": "Kategorie pro stránky, kde je překročen počet uzlů.",
+       "node-count-exceeded-category-desc": "Tato stránka překračuje maximální počet uzlů.",
        "node-count-exceeded-warning": "Stránka překročila počet uzlů",
        "expansion-depth-exceeded-category": "Stránky překračující hloubku expanze",
-       "expansion-depth-exceeded-category-desc": "Toto je kategorie pro stránky, ve kterých je překročena hloubka expanze.",
+       "expansion-depth-exceeded-category-desc": "Stránka překročila maximální hloubku expanze.",
        "expansion-depth-exceeded-warning": "Stránka překročila hloubku expanze",
        "parser-unstrip-loop-warning": "Detekováno zacyklení unstrip",
        "parser-unstrip-recursion-limit": "Překročen limit rekurze unstrip ($1)",
        "preferences": "Nastavení",
        "mypreferences": "Nastavení",
        "prefs-edits": "Počet editací:",
-       "prefsnologintext2": "Pro změnu uživatelských nastavení se musíte $1.",
+       "prefsnologintext2": "Pro změnu uživatelských nastavení se musíte přihlásit.",
        "prefs-skin": "Vzhled",
        "skin-preview": "Náhled",
        "datedefault": "Implicitní",
        "trackingcategories-desc": "Kritéria pro vložení do kategorie",
        "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": "Po rozbalení všech šablon je stránka větší než <code>$wgMaxArticleSize</code>, takže některé šablony rozbaleny nebyly.",
-       "post-expand-template-argument-category-desc": "Po rozbalení argumentu šablony (něco v trojitých závorkách, např. <code>{{{Foo}}})</code> je stránka větší než <code>$wgMaxArticleSize</code>.",
-       "expensive-parserfunction-category-desc": "Na stránce je použito 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": "Kategorie přidaná pokud stránka obsahuje nefunkční odkaz na soubor (odkaz pro vložení souboru, který neexistuje).",
-       "hidden-category-category-desc": "Toto je kategorie, která obsahuje <code><nowiki>__HIDDENCAT__</nowiki></code>, což způsobuje, že se na stránkách implicitně nezobrazuje v rámečku odkazů na kategorie.",
+       "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>.",
+       "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.",
        "trackingcategories-nodesc": "Popis není k dispozici.",
        "trackingcategories-disabled": "Kategorie je vypnuta",
        "mailnologin": "Bez odesílací adresy",
        "mywatchlist": "Sledované stránky",
        "watchlistfor2": "{{GENDER:$1|Uživatele|Uživatelky|Uživatele}} $1 $2",
        "nowatchlist": "Na svém seznamu sledovaných stránek nemáte žádné položky.",
-       "watchlistanontext": "Pro prohlížení či úpravu seznamu sledovaných stránek se musíte $1.",
+       "watchlistanontext": "Pro prohlížení či úpravu seznamu sledovaných stránek se musíte přihlásit.",
        "watchnologin": "Nejste přihlášen(a)",
        "addwatch": "Přidat do sledovaných stránek",
        "addedwatchtext": "Stránka „[[:$1]]“ byla přidána mezi stránky, které sledujete.\nVe [[Special:Watchlist|sledovaných stránkách]] se tak budou objevovat budoucí změny této stránky a přidružené diskuse.",
        "delete-edit-reasonlist": "Editovat důvody smazání",
        "delete-toobig": "Tato stránka má velkou historii editací, přes $1 {{PLURAL:$1|verzi|verze|verzí}}. Mazání takových stránek je omezeno, aby se předešlo nechtěnému narušení {{grammar:2sg|{{SITENAME}}}}.",
        "delete-warning-toobig": "Tato stránka má velkou historii editací, přes $1 {{PLURAL:$1|verzi|verze|verzí}}. Mazání takových stránek může narušit databázové operace {{grammar:2sg|{{SITENAME}}}}; postupujte opatrně.",
+       "delete-cantedit": "Tuto stránku nemůžete smazat, protože nemáte oprávnění ji editovat.",
        "deleting-backlinks-warning": "'''Upozornění:''' Stránka, kterou se chystáte smazat, je [[Special:WhatLinksHere/{{FULLPAGENAME}}|na jiných stránkách]] odkazována nebo je do nich vložena.",
        "rollback": "Vrátit zpět editace",
        "rollback_short": "Vrátit zpět",
        "logentry-rights-rights": "$1 {{GENDER:$2|změnil|změnila}} členství $3 ve skupinách z $4 na $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|změnil|změnila}} členství $3 ve skupinách",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|byl automaticky povýšen|byla automaticky povýšena}} z $4 na $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|načetl|načetla}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|načetl|načetla}} novou verzi $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|načetl|načetla}} $3",
        "rightsnone": "(žádné)",
        "feedback-bugornote": "Pokud dokážete podrobně popsat technický problém, můžete [$1 nahlásit chybu].\nJinak můžete využít jednoduchý formulář níže. Váš komentář bude přidán na stránku „[$3 $2]“ spolu s vaším uživatelským jménem a informací o tom, jaký prohlížeč používáte.",
        "feedback-subject": "Předmět:",
        "action-pagelang": "měnit jazyk stránky",
        "log-name-pagelang": "Kniha změn jazyků",
        "log-description-pagelang": "Toto je protokol změn jazyků stránek.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|změnil|změnila}} jazyk stránky $3 z $4 na $5."
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|změnil|změnila}} jazyk stránky $3 z $4 na $5.",
+       "default-skin-not-found": "Jejda! Výchozí vzhled vaší wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, není dostupný.\n\nVaše instalace zřejmě obsahuje následující vzhledy. Informace o tom, jak je povolit a vybrat výchozí, najdete na stránce [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration/cs Manual:Skin configuration].\n\n$2\n\n; Pokud jste právě nainstalovali MediaWiki:\n: Zřejmě jste instalovali z gitu nebo nějakým jiným způsobem přímo ze zdrojového kódu. Tak to má fungovat. Zkuste nainstalovat některé vzhledy ze [https://www.mediawiki.org/wiki/Category:All_skins seznamu vzhledů na mediawiki.org] buď:\n:* Můžete si stáhnout [https://www.mediawiki.org/wiki/Download/cs instalace v tarballu], která zahrnuje několik vzhledů a rozšíření, a vykopírovat si z ní adresář <code>skins/</code>, nebo\n:* Nebo si můžete gitem naklonovat jeden z repozitářů <code>mediawiki/skins/*</code> do adresáře <code>skins/</code> ve vaší instalaci MediaWiki.\n: Pokud jste vývojářem MediaWiki, nemělo by to nijak narušit váš gitový repozitář.\n\n; Pokud jste právě aktualizovali MediaWiki:\n: MediaWiki 1.24 a novější již automaticky nepovolují nainstalované vzhledy (vizte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_autodiscovery/cs Manual:Skin autodiscovery]). Pro povolení všech právě nainstalovaných vzhledů vlepte následující řádky do <code>LocalSettings.php</code>:\n\n<pre>$3</pre>\n\n; Pokud jste právě upravili <code>LocalSettings.php</code>:\n: Překontrolujte případné překlepy v názvech vzhledů.",
+       "default-skin-not-found-no-skins": "Jejda! Výchozí vzhled vaší wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, není dostupný.\n\nNemáte nainstalovány žádné vzhledy.\n\n; Pokud jste právě nainstalovali nebo aktualizovali MediaWiki:\n: Zřejmě jste instalovali z gitu nebo nějakým jiným způsobem přímo ze zdrojového kódu. Tak to má fungovat. MediaWiki 1.24 a novější již v hlavním repozitáři neobsahují žádné vzhledy. Zkuste nainstalovat některé vzhledy ze [https://www.mediawiki.org/wiki/Category:All_skins seznamu vzhledů na mediawiki.org] buď:\n:* Můžete si stáhnout [https://www.mediawiki.org/wiki/Download/cs instalace v tarballu], která zahrnuje několik vzhledů a rozšíření, a vykopírovat si z ní adresář <code>skins/</code>, nebo\n:* Nebo si můžete gitem naklonovat jeden z repozitářů <code>mediawiki/skins/*</code> do adresáře <code>skins/</code> ve vaší instalaci MediaWiki.\n: Pokud jste vývojářem MediaWiki, nemělo by to nijak narušit váš gitový repozitář. Informace o tom, jak povolit vzhledy a vybrat výchozí, najdete na stránce [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration/cs Manual:Skin configuration].",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (povolený)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''zakázaný''')"
 }
index 6a4cf9c..7049f9a 100644 (file)
        "talkpagelinktext": "Diskùsëjô",
        "specialpage": "Specjalnô starna",
        "personaltools": "Priwatné przërëchtënczi",
-       "postcomment": "Nowi dzél",
        "articlepage": "Starna artikla",
        "talk": "Diskùsëjô",
        "views": "Pòdzérków",
        "yourdomainname": "Twòjô domena",
        "login": "Wlogùjë mie",
        "nav-login-createaccount": "Logòwanié",
-       "loginprompt": "Brëkùjesz miec ''cookies'' (kùszczi) włączoné bë sã wlogòwac do {{SITENAME}}.",
        "userlogin": "Logòwanié",
        "userloginnocreate": "Wlogùjë mie",
        "logout": "Wëlogùjë mie",
        "badfilename": "Miono òbrôzka zmienioné na \"$1\".",
        "uploadwarning": "Òstrzega ò wladënkù",
        "savefile": "Zapiszë lôpk",
-       "uploadedimage": "wladënk: \"$1\"",
        "uploaddisabled": "Przeprôszómë! Mòżlëwòta wladënkù lopków na nen serwer òsta wëłączonô.",
        "upload-success-subj": "Wladënk darzëł sã",
        "listfiles": "Lësta òbrôzków",
        "notanarticle": "To nie je artikel",
        "watchlist-details": "Ùzérôsz {{PLURAL:$1|$1 artikel|$1 artikle/-ów}}, nie rechùjąc diskùsëjów.",
        "wlheader-showupdated": "Artiklë jakczé òsta zmienioné òd Twòji slédny wizytë są wëapratnioné '''pògrëbieniém'''",
+       "wlnote": "Niżi môsz wëskrzënioné {{PLURAL:$1|slédną zmianã|'''$1''' slédnëch zmianów}} zrobioné òb {{PLURAL:$2|gòdzënã|'''$2''' gòdzënë/gòdzënów}}.",
        "wlshowlast": "Wëskrzëni zjinaczi z $1 gòdzënów $2 dni $3",
        "watchlist-options": "Òptacëje ùzérónych",
        "watching": "Ùzéróm...",
index c80e34b..f5e4590 100644 (file)
        "talkpagelinktext": "бєсѣда",
        "specialpage": "нарочьна страница",
        "personaltools": "моꙗ орѫдиꙗ",
-       "postcomment": "нова чѧсть",
        "talk": "бєсѣда",
        "toolbox": "орѫдиꙗ",
        "otherlanguages": "дроугꙑ ѩꙁꙑкꙑ",
        "filedesc": "опьсаниѥ",
        "fileuploadsummary": "опьсаниѥ:",
        "savefile": "дѣла съхранѥниѥ",
-       "uploadedimage": "⁖ [[$1]] ⁖ положєнъ ѥстъ",
-       "overwroteimage": "новъ обраꙁъ ⁖ [[$1]] ⁖ положєнъ ѥстъ",
        "upload-source": "источьно дѣло",
        "sourcefilename": "источьна дѣла имꙗ :",
        "watchthisupload": "си дѣла блюдєниѥ",
index 9c6f083..7ac4c5d 100644 (file)
        "talkpagelinktext": "Сӳтсе явни",
        "specialpage": "Ятарлă страницă",
        "personaltools": "Ман хатĕрсем",
-       "postcomment": "Хуравла",
        "articlepage": "Статьяна пăх",
        "talk": "Сӳтсе явни",
        "views": "Пурĕ пăхнă",
        "yourdomainname": "Сирĕн домен",
        "login": "Сайта кĕр",
        "nav-login-createaccount": "Сайта кĕр / регистрацилен",
-       "loginprompt": "Сайта кĕрес тесен сирĕн «cookies»-па усă курма ирĕк памалла.",
        "userlogin": "Сайта кĕр",
        "logout": "Сайтран тухас",
        "userlogout": "Сайтран тух",
        "largefileserver": "Файл пысăкăшĕ юрăхлинчен пысăкрах (пĕчĕклетĕр).",
        "uploadwarning": "Асăрхаттару",
        "savefile": "Файла çырса хур",
-       "uploadedimage": "«[[$1]]» кĕртрĕмĕр",
        "uploaddisabled": "Каçарăр та сайта халĕ нимĕн те кĕртме юрамаст.",
        "uploaddisabledtext": "Ку вики-сайтра файлсене кĕртме чарнă.",
        "uploadvirus": "Файл ăшĕнче вирус пур! $1 пăхăр.",
index fe284ae..3a0a6ab 100644 (file)
        "externaldberror": "Naill ai: cafwyd gwall dilysu allanol ar databas neu: ar y llaw arall efallai nad oes hawl gennych chi i ddiwygio'ch cyfrif allanol.",
        "login": "Mewngofnodi",
        "nav-login-createaccount": "Mewngofnodi",
-       "loginprompt": "Mae'n rhaid galluogi cwcis er mwyn mewngofnodi i {{SITENAME}}.",
        "userlogin": "Mewngofnodi / creu cyfrif",
        "userloginnocreate": "Mewngofnodi",
        "logout": "Allgofnoder",
        "searchprofile-advanced-tooltip": "Chwilio drwy parthau dewisol",
        "search-result-size": "$1 ({{PLURAL:$2|dim geiriau|$2 gair|$2 air|$2 gair|$2 gair|$2 gair|}})",
        "search-result-category-size": "{{PLURAL:$1|$1 aelod}} ({{PLURAL:$2|$2 is-gategori}}, {{PLURAL:$3|$3 ffeil}})",
-       "search-result-score": "Perthnasedd: $1%",
        "search-redirect": "(ailgyfeiriad $1)",
        "search-section": "(adran $1)",
        "search-file-match": "(yn cyfateb i gynnwys y ffeil)",
        "uploadwarning": "Rhybudd uwchlwytho",
        "uploadwarning-text": "Newidiwch ddisgrifiad y ffeil isod ac yna ceisiwch ei huwchlwytho eto, os gwelwch yn dda.",
        "savefile": "Cadw'r ffeil",
-       "uploadedimage": "wedi llwytho \"[[$1]]\"",
-       "overwroteimage": "wedi uwchlwytho fersiwn newydd o \"[[$1]]\"",
        "uploaddisabled": "Ymddiheurwn; mae uwchlwytho wedi'i analluogi.",
        "copyuploaddisabled": "Analluogwyd uwchlwytho gan URL.",
        "uploaddisabledtext": "Analluogwyd uwchlwytho ffeiliau ar y wefan hon.",
        "watchlist-details": "{{PLURAL:$1|Nid oes dim tudalennau|Mae $1 dudalen|Mae $1 dudalen|Mae $1 tudalen|Mae $1 thudalen|Mae $1 o dudalennau}} ar eich rhestr wylio, heb gynnwys tudalennau sgwrs ar wahan.",
        "wlheader-enotif": "Galluogwyd hysbysiadau trwy e-bost.",
        "wlheader-showupdated": "Mae tudalennau sydd wedi newid ers i chi eu gweld ddiwethaf wedi'u '''hamlygu'''.",
-       "wlnote2": "Isod, fe welwch y newidiadau yn ystod {{PLURAL:$1|yr awr|yr awr|y ddwyawr ddiwethaf|teirawr diwethaf|<strong>$1</strong> awr diwethaf}}, hyd at $2, $3.",
+       "wlnote": "{{PLURAL:$1|Ni fu unrhyw newid|Isod mae'r '''$1''' newid diweddaraf|Isod mae'r '''$1''' newid diweddaraf|Isod mae'r '''$1''' newid diweddaraf|Isod mae'r '''$1''' newid diweddaraf|Isod mae'r '''$1''' newid diweddaraf}} yn ystod {{PLURAL:$2||yr awr|y ddwyawr|y teirawr|y \"$2\" awr|y(r) \"$2\" awr}} ddiwethaf, fel ag yr oedd am $4, $3.",
        "wlshowlast": "Dangoser newidiadau'r $1 awr ddiwethaf neu'r $2 {{PLURAL:$2|diwrnod|diwrnod|ddiwrnod|diwrnod|diwrnod|diwrnod}} diwethaf neu'r $3 newidiadau.",
        "watchlist-options": "Dewisiadau ar gyfer y rhestr wylio",
        "watching": "Wrthi'n ychwanegu...",
index 32a907f..cc426f3 100644 (file)
        "collapsible-collapse": "Fold sammen",
        "collapsible-expand": "Fold ud",
        "confirmable-confirm": "Er {{GENDER:$1|du}} sikker?",
+       "confirmable-yes": "Ja",
+       "confirmable-no": "Nej",
        "thisisdeleted": "Se eller gendan $1?",
        "viewdeleted": "Vis $1?",
        "restorelink": "{{PLURAL:$1|en slettet ændring|$1 slettede ændringer}}",
        "preview": "Forhåndsvisning",
        "showpreview": "Forhåndsvisning",
        "showdiff": "Vis ændringer",
+       "blankarticle": "<strong>Advarsel:</strong> Siden du opretter er tom.\nHvis du klikker på \"{{int:savearticle}}\" igen, vil siden blive oprettet uden indhold.",
        "anoneditwarning": "'''Advarsel:''' Du er ikke logget på. I stedet for brugernavn vises din IP-adresse i versionshistorikken.",
        "anonpreviewwarning": "''Du er ikke logget på. Hvis du gemmer, registreres din IP-adresse i versionshistorikken.''",
        "missingsummary": "'''Bemærk:''' Du har ikke angivet en redigeringsbeskrivelse. Hvis du igen trykker på \"{{int:savearticle}}\", gemmes ændringerne uden en beskrivelse.",
        "edit-conflict": "Redigeringskonflikt.",
        "edit-no-change": "Din ændring ignoreredes, fordi der ikke var ændring af teksten.",
        "postedit-confirmation-created": "Siden er blevet oprettet.",
+       "postedit-confirmation-restored": "Siden er blevet genoprettet.",
        "postedit-confirmation-saved": "Din redigering er gemt.",
        "edit-already-exists": "En ny side kunne ikke oprettes, fordi den allerede findes.",
        "defaultmessagetext": "Standardtekst",
        "parser-template-recursion-depth-warning": "En skabelon er rekursivt inkluderet for mange gange ($1)",
        "language-converter-depth-warning": "Dybdegrænse for sprogkonvertering overskredet ($1)",
        "node-count-exceeded-category": "Sider hvor antal noder er overskredet",
-       "node-count-exceeded-warning": "Sider der har overskredet antallet af noder",
+       "node-count-exceeded-category-desc": "Siden overstiger det maksimale antal af noder.",
+       "node-count-exceeded-warning": "Siden har overskredet antallet af noder",
        "expansion-depth-exceeded-category": "Sider, der overskrider ekspansionsdybden",
        "expansion-depth-exceeded-warning": "Siden overskred ekspansionsdybden",
        "parser-unstrip-loop-warning": "Unstrip-loop opdaget",
        "currentrev": "Nuværende version",
        "currentrev-asof": "Nuværende version fra $1",
        "revisionasof": "Versionen fra $1",
-       "revision-info": "Version fra $1 af $2",
+       "revision-info": "Version fra $1 af $2 {{GENDER:$6|$2}}$7",
        "previousrevision": "←Ældre version",
        "nextrevision": "Nyere version→",
        "currentrevisionlink": "se nuværende version",
        "preferences": "Indstillinger",
        "mypreferences": "Indstillinger",
        "prefs-edits": "Antal redigeringer:",
-       "prefsnologintext2": "Du skal $1 for at ændre brugerindstillinger.",
+       "prefsnologintext2": "Du skal logge på for at ændre dine brugerindstillinger.",
        "prefs-skin": "Udseende",
        "skin-preview": "Forhåndsvisning",
        "datedefault": "Standard",
        "right-deletedtext": "Vise slettet tekst og ændringer i slettede revisioner",
        "right-browsearchive": "Søge i slettede sider",
        "right-undelete": "Gendanne en side",
-       "right-suppressrevision": "Skjule og synliggøre sletninger for administratorer",
+       "right-suppressrevision": "Se, skjule og vise specifikke versioner af sider fra enhver bruger",
+       "right-viewsuppressed": "Se versioner skjult fra enhver bruger",
        "right-suppressionlog": "Se skjulte loglister",
        "right-block": "Blokere brugere",
        "right-blockemail": "Blokere en brugers mulighed for at sende mail",
        "action-createpage": "oprette sider",
        "action-createtalk": "oprette diskussionssider",
        "action-createaccount": "Oprette denne brugerkonto",
+       "action-history": "se historik for denne side",
        "action-minoredit": "markere denne redigering som mindre",
        "action-move": "flytte denne side",
        "action-move-subpages": "flytte denne side og dens undersider",
        "recentchanges-legend-heading": "'''Forklaring:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (se også [[Special:NewPages|listen over nye sider]])",
        "recentchanges-legend-plusminus": "(''±123'')",
-       "rcnotefrom": "Nedenfor er op til '''$1''' ændringer siden '''$2''' vist.",
+       "rcnotefrom": "Nedenfor er op til '''$1''' {{PLURAL:$5|ændring|ændringer}} siden '''$2''' vist.",
        "rclistfrom": "Vis nye ændringer startende fra $3 $2",
        "rcshowhideminor": "$1 mindre ændringer",
        "rcshowhideminor-show": "Vis",
        "largefileserver": "Filen er større end den på serveren indstillede maksimale størrelse.",
        "emptyfile": "Filen du lagde op lader til at være tom. Det kan skyldes en slåfejl i filnavnet. Kontroller om du virkelig ønsker at lægge denne fil op.",
        "windows-nonascii-filename": "Denne wiki understøtter ikke filnavne, der indeholder specialtegn.",
-       "fileexists": "En fil med det navn findes allerede, tjek venligst <strong>[[:$1]]</strong> om du er sikker på du vil ændre den.\n[[$1|thumb]]",
+       "fileexists": "En fil med det navn findes allerede, tjek venligst <strong>[[:$1]]</strong> hvis du ikke er sikker på om du vil ændre den.\n[[$1|thumb]]",
        "filepageexists": "Siden med beskrivelse af denne fil er allerede oprettet på <strong>[[:$1]]</strong>, men der eksisterer ikke en fil med dette navn.\nDen beskrivelse du kan angive nedenfor vil derfor ikke blive brugt.\nFor at få din beskrivelse vist, skal du selv redigere beskrivelsessiden.\n[[$1|thumb]]",
-       "fileexists-extension": "En fil med lignende navn findes allerede: [[$2|thumb]]\n* Navnet på den valgte fil: <strong>[[:$1]]</strong>\n* Navnet på den eksisterende fil: <strong>[[:$2]]</strong>\nVælg venligst et andet navn.",
+       "fileexists-extension": "En fil med lignende navn findes allerede: [[$2|thumb]]\n* Navnet på den valgte fil: <strong>[[:$1]]</strong>\n* Navnet på den eksisterende fil: <strong>[[:$2]]</strong>\nVil du måske bruge et mere karakteristisk navn?",
        "fileexists-thumbnail-yes": "Det ser ud som om filen indeholder et billede i reduceret størrelse ''(thumbnail)''. [[$1|thumb]]\nKontroller filen <strong>[[:$1]]</strong>.\nHvis det er billedet i original størrelse, er det ikke nødvendigt at uploade et separat forhåndsvisningsbillede.",
        "file-thumbnail-no": "Filnavnet begynder med <strong>$1</strong>.\nDet tyder på et billede i reduceret format ''(thumbnail)''.\nHvis du har billedet i fuld størrelse, så brug det i stedet. Ellers bedes du venligst ændre filnavnet.",
        "fileexists-forbidden": "En fil med dette navn findes allerede, og den kan ikke overskrives.\nHvis du fortsat vil lægge filen op, bedes du gå tilbage og bruge et nyt navn.\n[[File:$1|thumb|center|$1]]",
        "license": "Licens",
        "license-header": "Licensering",
        "nolicense": "intet forvalg",
+       "licenses-edit": "Rediger licensvalg",
        "license-nopreview": "(forhåndsvisning ikke mulig)",
-       "upload_source_url": " (gyldig, offentligt tillgængelig URL)",
-       "upload_source_file": " (en fil på din computer)",
+       "upload_source_url": "(din valgte fil fra en gyldig, offentligt tilgængelige URL)",
+       "upload_source_file": "(din valgte fil fra din computer)",
+       "listfiles-delete": "slet",
        "listfiles-summary": "Denne specialside viser alle oplagte filer.",
        "listfiles_search_for": "Søge efter fil:",
        "imgfile": "Fil",
        "pageswithprop-prophidden-binary": "binær værdi for egenskaben skjult ($1)",
        "doubleredirects": "Dobbelte omdirigeringer",
        "doubleredirectstext": "Dette er en liste over sider som omdirigerer til andre omdirigeringssider.\nHver linje indeholder henvisninger til den første og den anden omdirigering, såvel som til målet for den anden omdirigering som sædvanligvis er den \"rigtige\" målside som den første omdirigering burde henvise til.\n<del>Overstregede</del> poster er rettede.",
-       "double-redirect-fixed-move": "[[$1]] blev flyttet og er nu en omdirigering til [[$2]]",
-       "double-redirect-fixed-maintenance": "Rettelse af dobbelt omdirigering fra [[$1]] til [[$2]].",
+       "double-redirect-fixed-move": "[[$1]] blev flyttet.\nDen blev automatisk opdateret og er nu en omdirigering til [[$2]].",
+       "double-redirect-fixed-maintenance": "Automatisk rettelse af dobbelt omdirigering fra [[$1]] til [[$2]] som en del af en vedligeholdelsesopgave.",
        "double-redirect-fixer": "Omdirigerings-retter",
        "brokenredirects": "Defekte omdirigeringer",
        "brokenredirectstext": "Følgende omdirigeringer peger på en side der ikke eksisterer:",
        "listgrouprights-removegroup-self": "Kan fjerne {{PLURAL:$2|gruppe|grupper}} fra egen konto: $1",
        "listgrouprights-addgroup-self-all": "Kan tilføje alle grupper til egen konto",
        "listgrouprights-removegroup-self-all": "Kan fjerne alle grupper fra egen konto",
+       "listgrouprights-namespaceprotection-header": "Navnerumsbegrænsninger",
+       "listgrouprights-namespaceprotection-namespace": "Navnerum",
+       "listgrouprights-namespaceprotection-restrictedto": "Rettighed(er) der giver brugeren mulighed for at redigere",
        "mailnologin": "Du er ikke logget på",
        "mailnologintext": "Du skal være [[Special:UserLogin|logget på]] og have en gyldig e-mailadresse sat i dine [[Special:Preferences|indstillinger]] for at sende e-mail til andre brugere.",
        "emailuser": "E-mail til denne bruger",
        "mywatchlist": "Overvågningsliste",
        "watchlistfor2": "For $1 $2",
        "nowatchlist": "Du har ingenting i din overvågningsliste.",
-       "watchlistanontext": "Du skal $1, for at se din overvågningsliste eller ændre indholdet af den.",
+       "watchlistanontext": "Du skal logge på, for at se din overvågningsliste eller ændre indholdet af den.",
        "watchnologin": "Ikke logget på",
        "addwatch": "Tilføj til overvågningsliste",
        "addedwatchtext": "Siden \"[[:$1]]\" er blevet tilføjet til din [[Special:Watchlist|overvågningsliste]].\nFremtidige ændringer af denne side og dens tilknyttede diskussionsside vil blive vist der.",
+       "addedwatchtext-short": "Siden \"$1\" er blevet tilføjet til din overvågningsliste.",
        "removewatch": "Fjern fra overvågningsliste",
        "removedwatchtext": "Siden \"[[:$1]]\" er blevet fjernet fra [[Special:Watchlist||din overvågningsliste]].",
+       "removedwatchtext-short": "Siden \"$1\" er blevet fjernet fra din overvågningsliste.",
        "watch": "Overvåg",
        "watchthispage": "Overvåg side",
        "unwatch": "Fjern overvågning",
        "expand_templates_remove_nowiki": "Undertryk <nowiki>-tags i resultatet",
        "expand_templates_generate_xml": "Vis analysetræ som XML",
        "expand_templates_generate_rawhtml": "Vis rå HTML",
-       "expand_templates_preview": "Forhåndsvisning"
+       "expand_templates_preview": "Forhåndsvisning",
+       "pagelanguage": "Valg af sidesprog",
+       "pagelang-name": "Side",
+       "pagelang-language": "Sprog",
+       "pagelang-use-default": "Brug standardsprog",
+       "pagelang-select-lang": "Vælg sprog",
+       "right-pagelang": "Ændre sidesproget"
 }
index 1e71bf7..90bff13 100644 (file)
@@ -74,7 +74,8 @@
                        "Zylbath",
                        "לערי ריינהארט",
                        "✓",
-                       "XenonX3"
+                       "XenonX3",
+                       "Brackenheim"
                ]
        },
        "tog-underline": "Links unterstreichen:",
        "delete-edit-reasonlist": "Löschgründe bearbeiten",
        "delete-toobig": "Diese Seite hat mit mehr als $1 {{PLURAL:$1|Version|Versionen}} eine sehr lange Versionsgeschichte. Das Löschen solcher Seiten wurde eingeschränkt, um eine versehentliche Überlastung der Server zu verhindern.",
        "delete-warning-toobig": "Diese Seite hat mit mehr als $1 {{PLURAL:$1|Version|Versionen}} eine sehr lange Versionsgeschichte. Das Löschen kann zu Störungen im Datenbankbetrieb führen.",
+       "delete-cantedit": "Du kannst diese Seite nicht löschen, da du nicht über das Recht verfügst, diese Seite zu bearbeiten.",
        "deleting-backlinks-warning": "'''Warnung:''' Es verweisen noch [[Special:WhatLinksHere/{{FULLPAGENAME}}|andere Seiten]] auf die zu löschende Seite oder diese Seite ist noch woanders eingebunden.",
        "rollback": "Zurücksetzen der Änderungen",
        "rollback_short": "Zurücksetzen",
index 1db8670..53f608f 100644 (file)
        "talkpagelinktext": "Boroson",
        "specialpage": "Bolikon suaikowokon",
        "personaltools": "Kakamot minsosondiri",
-       "postcomment": "Bogian wagu",
        "articlepage": "Intaai suang bolikon",
        "talk": "Pogigibarasan",
        "views": "Pongintangan",
        "externaldberror": "Haro nokosilap pongintutunan bingdata toi awu ko pasagaon monginwagu takaun poinsoliwannu.",
        "login": "Sumuang log",
        "nav-login-createaccount": "Sumuang log / pomonsoi  do takaun",
-       "loginprompt": "Suhuonko do poposikit pongongonsok do sumuang log id {{SITENAME}}.",
        "userlogin": "Sumuang log / pomonsoi  do takaun",
        "userloginnocreate": "Sumuang log",
        "logout": "Lumabus log",
        "uploadnologintext": "Pinatantu ko do [[Special:UserLogin|lumoog sumuang]] do mangaplod tangapail-pail.",
        "uploadlogpage": "Log poposuang",
        "filedesc": "Koinibaan",
-       "uploadedimage": "poposuang \"[[$1]]\"",
        "license": "Pongolisinan:",
        "license-header": "Pongolisinan",
        "listfiles_search_for": "Mogihum ngaran modia:",
index ca2cfa4..703f898 100644 (file)
        "talkpagelinktext": "ޚިޔާލު ސަފްޙާ",
        "specialpage": "ހާއްސަ ޞަފްޙާ",
        "personaltools": "އަމިއްލަ",
-       "postcomment": "އާ ބައެއް",
        "articlepage": "ފިހުރިސްތު ޞަފްޙާ ބައްލަވާ",
        "talk": "ބަހުސް",
        "views": "ހިޔާލުފުޅުތައް",
        "yourpasswordagain": "ސިއްރުބަސް އަލުންލިޔުއްވާ",
        "login": "ވަދެވަޑައިގަންނަވާ",
        "nav-login-createaccount": "ވަންނަވާ / މެންބަރަކަށް ވެވަޑައިގަންނަވާ",
-       "loginprompt": "{{SITENAME}}އަށް ވަންނަވަން ކުކީޒް ބޭނުންވާނެއެވެ.",
        "userlogin": "ވަންނަވާ / މެންބަރަކަށް ވެ ވަޑައިގަންނަވާ",
        "userloginnocreate": "ވަދެވަޑައިގަންނަވާ",
        "logout": "ބޭރަށް ވަޑައިގަންނަވާ",
        "watch": "ނަޒަރުބަހައްޓަވާ",
        "watchthispage": "މި ޞަފްޙާއަށް ނަޒަރުބަހައްޓަވާ",
        "unwatch": "ހާއްސަ ނަޒަރުން އުނިކުރޭ",
+       "wlnote": "ތިރީގައި މިވަނީ އެއީ ފާއިތުވި <b>$2</b> ގަޑި އިރުގެ ތެރޭގައިގެނެވިފައިވާ ފަހު $1 ބަދަލެވެ.",
        "changed": "ބަދަލުކުރެވިއްޖެ",
        "deletepage": "ޞަފްޙާ ފޮހެލައްވާ",
        "confirm": "ޔަގީން",
index ed5f29d..7f1a29f 100644 (file)
        "prefs-email": "Siēlta pôsta eletrônica",
        "prefs-rendering": "Aspèt",
        "saveprefs": "Sêlva",
+       "restoreprefs": "Turnêr a mèter al j impustasiòun ed partèinsa (in tót al sesiòun)",
        "prefs-editing": "Caşèla 'd mudéfica",
        "rows": "Rîghi",
+       "columns": "Clòuni:",
        "searchresultshead": "Sērca",
+       "stub-threshold": "Valōr ménim per i <a href=\"#\" class=\"stub\">colegamèint a i stub</a>, in byte:",
+       "stub-threshold-disabled": "Bluchê",
+       "recentchangesdays": "Nómer di dé da fêr vèder int al j ûltmi mudéfichi:",
+       "recentchangesdays-max": "Mâsim $1 {{PLURAL:$1|dé}}",
+       "recentchangescount": "Nómer ed mudéfichi da fêr vèder per default:",
        "timezoneregion-africa": "Âfrica",
        "timezoneregion-america": "Amèrica",
        "timezoneregion-antarctica": "Antârtide",
index 5aec3ec..6156867 100644 (file)
@@ -38,7 +38,8 @@
                        "Kolega2357",
                        "아라",
                        "Calak",
-                       "Auslaender"
+                       "Auslaender",
+                       "Milicevic01"
                ]
        },
        "tog-underline": "Υπογράμμιση συνδέσμων:",
@@ -55,6 +56,7 @@
        "tog-watchdefault": "Προσθήκη σελίδων που επεξεργάζομαι στη λίστα παρακολούθησης.",
        "tog-watchmoves": "Προσθήκη σελίδων που μετακινώ στη λίστα παρακολούθησής μου",
        "tog-watchdeletion": "Προσθήκη σελίδων και αρχείων που διαγράφω στη λίστα παρακολούθησής μου",
+       "tog-watchrollback": "Προσθήκη σελίδων όπου έχω κάνει μια επαναφορά στη λίστα παρακολούθησής μου",
        "tog-minordefault": "Σήμανση εκ προεπιλογής όλων των αλλαγών ως μικρής κλίμακας",
        "tog-previewontop": "Εμφάνιση προεπισκόπησης πριν από το πλαίσιο επεξεργασίας",
        "tog-previewonfirst": "Εμφάνιση προεπισκόπησης κατά την πρώτη επεξεργασία",
        "view": "Προβολή",
        "view-foreign": "Δείτε στο $1",
        "edit": "Επεξεργασία",
+       "edit-local": "Επεξεργασία τοπικής περιγραφής",
        "create": "Δημιουργία",
        "create-local": "Προσθέστε τοπική περιγραφή",
        "editthispage": "Επεξεργασία αυτής της σελίδας",
        "jumptonavigation": "πλοήγηση",
        "jumptosearch": "αναζήτηση",
        "view-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτή τη σελίδα.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτή τη σελίδα.\n\n$1",
+       "generic-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτό τον πόρο.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτό τον πόρο ξανά.",
        "pool-timeout": "Χρόνος αναμονής για το κλείδωμα",
        "pool-queuefull": "Η ουρά της δεξαμενής διεργασιών είναι πλήρης",
        "pool-errorunknown": "Άγνωστο σφάλμα",
        "hidetoc": "απόκρυψη",
        "collapsible-collapse": "Σύμπτυξη",
        "collapsible-expand": "Ανάπτυξη",
+       "confirmable-confirm": "Είστε {{GENDER:$1|σίγουρος|σίγουρη}};",
+       "confirmable-yes": "Ναι",
+       "confirmable-no": "Όχι",
        "thisisdeleted": "Προβολή ή αποκατάσταση $1;",
        "viewdeleted": "Προβολή $1;",
        "restorelink": "{{PLURAL:$1|μίας διαγεγραμμένης επεξεργασίας|$1 διαγεγραμμένων επεξεργασιών}}",
        "cannotdelete": "Η σελίδα ή το αρχείο «$1» δεν μπόρεσε να διαγραφεί.\nΕνδεχομένως να έχει ήδη διαγραφεί από κάποιον άλλον.",
        "cannotdelete-title": "Αδύνατη η διαγραφή της σελίδας «$1»",
        "delete-hook-aborted": "Η επεξεργασία ματαιώθηκε από το άγκιστρο του συντακτικού αναλυτή.\nΔεν έδωσε εξήγηση.",
+       "no-null-revision": "Δεν μπορούσε να δημιουργηθεί νέα μηδενική αναθεώρηση για τη σελίδα \"$1\"",
        "badtitle": "Ακατάλληλος τίτλος",
        "badtitletext": "Ο τίτλος της σελίδας που ζητήσατε δεν είναι έγκυρος ή είναι κενός ή πρόκειται για έναν εσφαλμένα συνδεδεμένο διαγλωσσικό τίτλο ή εσφαλμένα συνδεδεμένο τίτλο ανάμεσα σε διαφορετικά wiki.",
        "perfcached": "Τα δεδομένα που ακολουθούν είναι cached και είναι πιθανόν να μην είναι επικαιροποιημένα. Ένα μέγιστο των  {{PLURAL:$1|one result is|$1 results are}} διαθέσιμο στην cache.",
        "invalidtitle-knownnamespace": "Μη έγκυρος τίτλος με χώρο ονομάτων «$2» και κείμενο «$3»",
        "invalidtitle-unknownnamespace": "Μη έγκυρος τίτλος με άγνωστο αριθμό χώρου ονομάτων $1 και κείμενο «$2»",
        "exception-nologin": "Δεν έχετε συνδεθεί.",
-       "exception-nologin-text": "Παρακαλούμε να [[Special:Userlogin|συνδεθείτε]] για να μπορείτε να αποκτήσετε πρόσβαση σε αυτήν τη σελίδα ή την ενέργεια.",
+       "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": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
        "resetpass-submit-cancel": "Ακύρωση",
        "resetpass-wrong-oldpass": "Λάθος προσωρινός ή κανονικός κωδικός.\nΜπορεί να έχετε ήδη αλλάξει επιτυχώς τον κωδικό σας ή να έχετε ζητήσει έναν νέο προσωρινό κωδικό.",
        "resetpass-recycled": "Παρακαλούμε επαναφέρετε τον κωδικό πρόσβασής σας σε κάτι διαφορετικό από τον τρέχοντα κωδικό πρόσβασης.",
+       "resetpass-temp-emailed": "Έχετε συνδεθεί με ένα προσωρινό κωδικό μέσω ηλεκτρονικού ταχυδρομείου.\nΓια να ολοκληρώσετε τη σύνδεση, πρέπει να ορίσετε ένα νέο κωδικό εδώ:",
        "resetpass-temp-password": "Προσωρινός κωδικός:",
        "resetpass-abort-generic": "Η αλλαγή του κωδικού έχει απορριφθεί από μια προέκταση.",
        "resetpass-expired": "Τον κωδικό πρόσβασής σας έχει λήξει. Ορίστε ένα νέο κωδικό πρόσβασης για να συνδεθείτε.",
+       "resetpass-expired-soft": "Ο κωδικός πρόσβασής σας έχει λήξει και πρέπει να γίνει επαναφορά του. Παρακαλούμε γράψτε ένα νέο κωδικό πρόσβασης ή κάντε κλικ στο \"{{int:resetpass-submit-cancel}}\" για τον επαναφέρετε αργότερα.",
        "resetpass-validity-soft": "Τον κωδικό πρόσβασής σας δεν είναι έγκυρος: $1 \nΠαρακαλώ επιλέξτε ένα νέο κωδικό πρόσβασης τώρα, ή κάντε κλικ στο κουμπί \"{{int:resetpass-submit-cancel}}\" για να το επαναφέρετε αργότερα.",
        "passwordreset": "Κωδικός επαναφοράς",
        "passwordreset-text-one": "Συμπληρώστε την παρακάτω φόρμα για να επαναφέρετε τον κωδικό πρόσβασής σας.",
        "preview": "Προεπισκόπηση",
        "showpreview": "Εμφάνιση προεπισκόπησης",
        "showdiff": "Εμφάνιση αλλαγών",
+       "blankarticle": "<strong>Προειδοποίηση:</strong> Η σελίδα που δημιουργείτε είναι κενή.\nΕάν κάνετε κλικ στο κουμπί \"{{int:savearticle}}\" και πάλι, η σελίδα θα δημιουργηθεί χωρίς κανένα περιεχόμενο.",
        "anoneditwarning": "'''Προειδοποίηση:''' Δεν έχετε συνδεθεί. Η διεύθυνση IP σας θα καταγραφεί στο ιστορικό επεξεργασίας αυτής της σελίδας.",
        "anonpreviewwarning": "''Δεν έχετε συνδεθεί. Η αποθήκευση θα καταγράψει την διεύθυνσή IP σας στο ιστορικό επεξεργασίας αυτής της σελίδας.''",
        "missingsummary": "'''Υπενθύμιση:''' Δεν έχετε συμπληρώσει τη σύνοψη επεξεργασίας. Αν κάνετε κλικ στο κουμπί Αποθήκευση πάλι, η επεξεργασία σας θα αποθηκευτεί χωρίς σύνοψη.",
        "edit-gone-missing": "Δεν ήταν εφικτό να ενημερωθεί η σελίδα.\nΦαίνεται πως έχει διαγραφεί.",
        "edit-conflict": "Σύγκρουση επεξεργασιών.",
        "edit-no-change": "Η επεξεργασία σας αγνοήθηκε, επειδή δεν έγινε καμία αλλαγή στο κείμενο.",
+       "postedit-confirmation-created": "Η σελίδα έχει δημιουργηθεί.",
+       "postedit-confirmation-restored": "Η σελίδα έχει αποκατασταθεί.",
        "postedit-confirmation-saved": "H επεξεργασία σας αποθηκεύτηκε.",
        "edit-already-exists": "Δεν ήταν εφικτό να δημιουργηθεί η νέα σελίδα.\nΥπάρχει ήδη.",
        "defaultmessagetext": "Προεπιλεγμένο κείμενο μηνύματος",
        "parser-template-recursion-depth-warning": "Το όριο του μάκρους της αναδρομής του πρότυπου έχει ξεπεραστεί ($1)",
        "language-converter-depth-warning": "Το όριο βάθους του μετατροπέα γλώσσας έχει ξεπεραστεί ($1)",
        "node-count-exceeded-category": "Σελίδες υπέρβασης του αριθμού κόμβων",
+       "node-count-exceeded-category-desc": "Η σελίδα υπερβαίνει το μέγιστο αριθμό κόμβων.",
        "node-count-exceeded-warning": "Η σελίδα έχει υπερβεί τον αριθμό κόμβων",
        "expansion-depth-exceeded-category": "Σελίδες υπέρβασης της επέκτασης σε βάθος",
+       "expansion-depth-exceeded-category-desc": "Η σελίδα υπερβαίνει το μέγιστο βάθος επέκτασης.",
        "expansion-depth-exceeded-warning": "Η σελίδα υπερέβη το βάθος επέκτασης",
        "parser-unstrip-loop-warning": "εντοπίστηκε ένας βρόχος unstrip",
        "parser-unstrip-recursion-limit": "Υπέρβαση του ορίου αναδρομής Unstrip ($1)",
        "undo-failure": "Η επεξεργασία δεν μπορούσε να αναστραφεί λόγω αντικρουόμενων ενδιάμεσων επεξεργασιών.",
        "undo-norev": "Η ανάκληση αυτής της επεξεργασίας δεν ηταν δυνατό να πραγματοποιηθεί επειδή δεν υπάρχει ή επειδή έχει διαγραφεί.",
        "undo-nochange": "Η επεξεργασία φαίνεται να έχει ήδη αναιρεθεί.",
-       "undo-summary": "Αναίρεση αναθεώρησης $1 υπό τον/την [[Special:Contributions/$2|$2]] ([[User talk:$2|Συζήτηση]])",
+       "undo-summary": "Αναίρεση αναθεώρησης $1 υπό τον/την [[Special:Contribs/$2|$2]] ([[User talk:$2|Συζήτηση]])",
        "undo-summary-username-hidden": "Αναίρεση αναθεώρησης $1 από ένα κρυμμένο χρήστη",
        "cantcreateaccounttitle": "Ο λογαριασμός δεν μπορεί να δημιουργηθεί",
        "cantcreateaccount-text": "Η δημιουργία λογαριασμού από αυτή τη διεύθυνση IP ('''$1''') έχει αποτραπεί από τον [[User:$3|$3]].\n\nΟ λόγος που δόθηκε από τον $3 είναι ''$2''",
        "currentrev": "Τρέχουσα αναθεώρηση",
        "currentrev-asof": "Τελευταία αναθεώρηση της $1",
        "revisionasof": "Αναθεώρηση της $1",
-       "revision-info": "Î\91ναθεÏ\8eÏ\81ηÏ\83η Ï\84ηÏ\82 $1 Ï\85Ï\80Ï\8c {{GENDER:$6|Ï\84ον|Ï\84ην}} $2",
+       "revision-info": "Î\91ναθεÏ\8eÏ\81ηÏ\83η Ï\89Ï\82 Ï\80Ï\81οÏ\82 $1 Î±Ï\80Ï\8c {{GENDER:$6|Ï\84ον|Ï\84ην}} $2 $7",
        "previousrevision": "&larr;Παλαιότερη αναθεώρηση",
        "nextrevision": "Νεώτερη αναθεώρηση &rarr;",
        "currentrevisionlink": "Τελευταία αναθεώρηση",
        "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}}/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}}}} αρχείο καταγραφής διαγραφών].",
        "revdelete-no-file": "Το αρχείο που καθορίσατε δεν υπάρχει.",
        "revdelete-show-file-confirm": "Είστε σίγουροι ότι θέλετε να δείτε μία διεγραμμένη αναθεώρηση του αρχείου \"<nowiki>$1</nowiki>\" από τις $2 στις $3;",
        "revdelete-show-file-submit": "Ναι",
-       "revdelete-selected-text": "'''{{PLURAL:$2|Επιλεγμένη έκδοση|Επιλεγμένες εκδόσεις}} της [[:$1]]:'''",
+       "revdelete-selected-text": "{{PLURAL:$1|Επιλεγμένη έκδοση|Επιλεγμένες εκδόσεις}} της [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Επιλεγμένο γεγονός αρχείου καταγραφής|Επιλεγμένα γεγονότα αρχείου καταγραφής}}:",
        "revdelete-confirm": "Παρακαλούμε επιβεβαιώστε ότι σκοπεύετε να το κάνετε αυτό, ότι αντιλαμβάνεσθε τις συνέπειες, και ότι το κάνετε σύμφωνα με την [[{{MediaWiki:Policy-url}}|πολιτική]].",
        "revdelete-suppress-text": "Η καταστολή μπορεί να χρησιμοποιηθεί <strong> μόνο </strong> για τις ακόλουθες περιπτώσεις:\n* Ενδεχόμενη συκοφαντική δυσφήμιση\n* Ακατάλληλες προσωπικές πληροφορίες\n*: <em>διευθύνσεις κατοικίας και αριθμοί τηλεφώνου, αριθμοί ταυτότητας, κλπ. </em>",
        "searchprofile-advanced-tooltip": "Αναζήτηση σε προσαρμοσμένους ονοματοχώρους",
        "search-result-size": "$1 ({{PLURAL:$2|1 λέξη|$2 λέξεις}})",
        "search-result-category-size": "{{PLURAL:$1|1 μέλος|$1 μέλη}} ({{PLURAL:$2|1 υποκατηγορία|$2 υποκατηγορίες}}, {{PLURAL:$3|1 αρχείο|$3 αρχεία}})",
-       "search-result-score": "Σχετικότητα: $1%",
        "search-redirect": "(ανακατεύθυνση $1)",
        "search-section": "(ενότητα $1)",
        "search-file-match": "(ταιριάζει με το περιεχόμενο του αρχείου)",
        "uploadwarning": "Προειδοποίηση φόρτωσης",
        "uploadwarning-text": "Παρακαλώ αλλάξτε την περιγραφή του αρχείου παρακάτω και προσπαθήστε ξανά.",
        "savefile": "Αποθήκευση αρχείου",
-       "uploadedimage": "ανέβασε το «[[$1]]»",
-       "overwroteimage": "ανέβασμα νέας έκδοσης του \"[[$1]]\"",
        "uploaddisabled": "Το ανέβασμα αρχείων είναι απενεργοποιημένο.",
        "copyuploaddisabled": "Το ανέβασμα μέσω URL έχει απενεργοποιηθεί.",
        "uploaddisabledtext": "Το ανέβασμα αρχείων είναι απενεργοποιημένο.",
        "listgrouprights-removegroup-self": "Μπορεί να αφαιρέσει {{PLURAL:$2|ομάδα|ομάδες}} από το δικό σας λογαριασμό: $1",
        "listgrouprights-addgroup-self-all": "Μπορεί να προσθέσει όλες τις ομάδες στο δικό σας λογαριασμό",
        "listgrouprights-removegroup-self-all": "Μπορεί να αφαιρέσει όλες τις ομάδες από το δικό σας λογαριασμό",
+       "post-expand-template-inclusion-category-desc": "Το μέγεθος της σελίδας είναι μεγαλύτερο από <code>$wgMaxArticleSize</code> μετά την επέκταση όλων των προτύπων, έτσι ώστε ορισμένα πρότυπα δεν έχουν αναπτυχθεί.",
        "mailnologin": "Δεν υπάρχει διεύθυνση παραλήπτη.",
        "mailnologintext": "Πρέπει να έχετε [[Special:UserLogin|συνδεθεί]] και να έχετε δηλώσει\nμια έγκυρη ηλεκτρονική διεύθυνση στις [[Special:Preferences|Προτιμήσεις]]\nγια να στείλετε e-mail σε άλλους χρήστες.",
        "emailuser": "Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου σε αυτόν τον χρήστη",
        "mywatchlist": "Λίστα παρακολούθησης",
        "watchlistfor2": "Για $1 $2",
        "nowatchlist": "Δεν υπάρχουν εγγραφές στη λίστα παρακολούθησης.",
-       "watchlistanontext": "Παρακαλώ $1 για να δείτε ή να επεξεργαστείτε στοιχεία στη λίστα παρακολούθησής σας.",
+       "watchlistanontext": "Παρακαλούμε συνδεθείτε για να δείτε ή να επεξεργαστείτε αντικείμενα στη λίστα παρακολούθησής σας.",
        "watchnologin": "Δεν έχετε συνδεθεί.",
        "addwatch": "Προσθήκη στη λίστα παρακολούθησης",
        "addedwatchtext": "Η σελίδα «[[:$1]]» έχει προστεθεί στη [[Special:Watchlist|λίστα παρακολούθησής σας]].\nΜελλοντικές αλλαγές σε αυτή τη σελίδα και στη συσχετισμένη σελίδα συζήτησής της θα εμφανίζονται εδώ.",
        "watchlist-details": "{{PLURAL:$1|$1 σελίδα|$1 σελίδες}} στη λίστα παρακολούθησης σας, χωρίς να προσμετρούνται οι σελίδες συζήτησης.",
        "wlheader-enotif": "Η ειδοποίηση ηλεκτρονικού ταχυδρομείου ενεργοποιήθηκε.",
        "wlheader-showupdated": "Σελίδες που έχουν υποστεί αλλαγές από την τελευταία φορά που τις επισκεφθήκατε εμφανίζονται με '''έντονους χαρακτήρες'''.",
+       "wlnote": "Παρακάτω είναι {{PLURAL:$1|η πιο πρόσφατη αλλαγή|οι '''$1''' πιο πρόσφατες αλλαγές}} κατά τη διάρκεια {{PLURAL:$2|της τελευταίας ώρας|των '''$2''' τελευταίων ωρών}} ως προς την $3, $4.",
        "wlshowlast": "Εμφάνιση των τελευταίων $1 ωρών $2 ημερών $3",
        "watchlist-options": "Επιλογές λίστας παρακολούθησης",
        "watching": "Παρακολούθηση...",
        "delete-edit-reasonlist": "Επεξεργασία λόγων διαγραφής",
        "delete-toobig": "Αυτή η σελίδα έχει μεγάλο ιστορικό τροποποιήσεων, πάνω από $1 {{PLURAL:$1|τροποποίηση|τροποποιήσεις}}.\nΗ διαγραφή τέτοιων σελίδων έχει περιοριστεί για την αποφυγή τυχαίας αναστάτωσης του {{SITENAME}}.",
        "delete-warning-toobig": "Αυτή η σελίδα έχει μεγάλο ιστορικό τροποποιήσεων, πάνω από $1 {{PLURAL:$1|τροποποίηση|τροποποιήσεις}}.\nΗ διαγραφή της μπορεί να αναστατώσει τη λειτουργία της βάσης δεδομένων του {{SITENAME}}. Συνιστούμε μεγάλη προσοχή.",
+       "delete-cantedit": "Δεν μπορείτε να διαγράψετε αυτή τη σελίδα, επειδή δεν έχετε δικαίωμα να την επεξεργαστείτε.",
        "rollback": "Επαναφορά επεξεργασιών",
        "rollback_short": "Επαναφορά",
        "rollbacklink": "αναστροφή",
        "autoblockid": "Autoblock #$1",
        "block": "Φραγή χρήστη",
        "unblock": "Κατάργηση αποκλεισμού χρήστη",
-       "blockip": "Φραγή χρήστη ή διεύθυνσης IP",
+       "blockip": "Φραγή {{GENDER:$1|χρήστη|χρήστριας}}",
        "blockip-legend": "Φραγή του χρήστη",
        "blockiptext": "Χρησιμοποιήστε την παρακάτω φόρμα για να εμποδίσετε παρεμβάσεις στο κείμενο από μια συγκεκριμένη διεύθυνση IP ή όνομα χρήστη.\nΤο μέτρο αυτό πρέπει να λαμβάνεται μόνο σε περιπτώσεις βανδαλισμού σελίδων και πάντα σύμφωνα με την [[{{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|της $1}}",
        "unblockip": "Άρση φραγής χρήστη",
        "unblockiptext": "Χρησιμοποιήστε την παρακάτω φόρμα για να αποκαταστήσετε την πρόσβαση σε επεξεργασία, σε μια διεύθυνση IP ή σε ένα χρήστη που είχε αποκλειστεί με φραγή.",
        "ipusubmit": "Άρση φραγής",
        "svg-long-desc": "Αρχείο SVG, ονομαστικό μέγεθος $1 × $2 εικονοστοιχεία, μέγεθος αρχείου: $3",
        "svg-long-desc-animated": "Κινούμενο αρχείο SVG, ονομαστικό μέγεθος σε pixels: $1 × $2, μέγεθος αρχείου: $3",
        "svg-long-error": "Μη έγκυρο αρχείο SVG: $1",
-       "show-big-image": "Î\91Ï\81Ï\87ικÏ\8c αρχείο",
+       "show-big-image": "ΠÏ\81Ï\89Ï\84Ï\8cÏ\84Ï\85Ï\80ο αρχείο",
        "show-big-image-preview": "Μέγεθος αυτής της προεπισκόπησης: $1 .",
        "show-big-image-other": "Άλλες {{PLURAL:$2|ανάλυση|αναλύσεις}}: $1.",
        "show-big-image-size": "$1 × $2 εικονοστοιχεία",
        "expand_templates_remove_nowiki": "Απόκρυψη της ετικέτας <nowiki> στο αποτέλεσμα",
        "expand_templates_generate_xml": "Εμφάνιση δέντρου συντακτικής ανάλυσης XML",
        "expand_templates_generate_rawhtml": "Εμφάνιση ανεπεξέργαστης HTML",
-       "expand_templates_preview": "Προεπισκόπηση"
+       "expand_templates_preview": "Προεπισκόπηση",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> /$2 (ενεργοποιημένο)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''απενεργοποιημένο''')"
 }
index a43a742..e160327 100644 (file)
        "randomincategory": "Random page in category",
        "randomincategory-invalidcategory": "\"$1\" is not a valid category name.",
        "randomincategory-nopages": "There are no pages in the [[:Category:$1|$1]] category.",
-       "randomincategory-selectcategory": "Get random page from category: $1 $2.",
-       "randomincategory-selectcategory-submit": "Go",
+       "randomincategory-category": "Category:",
+       "randomincategory-legend": "Random page in category",
        "randomredirect": "Random redirect",
        "randomredirect-nopages": "There are no redirects in the namespace \"$1\".",
        "statistics": "Statistics",
        "exbeforeblank": "content before blanking was: \"$1\"",
        "delete-confirm": "Delete \"$1\"",
        "delete-legend": "Delete",
-       "historywarning": "<strong>Warning:</strong> The page you are about to delete has a history with approximately $1 {{PLURAL:$1|revision|revisions}}:",
+       "historywarning": "<strong>Warning:</strong> The page you are about to delete has a history with $1 {{PLURAL:$1|revision|revisions}}:",
        "confirmdeletetext": "You are about to delete a page along with all of its history.\nPlease confirm that you intend to do this, that you understand the consequences, and that you are doing this in accordance with [[{{MediaWiki:Policy-url}}|the policy]].",
        "actioncomplete": "Action complete",
        "actionfailed": "Action failed",
        "delete-edit-reasonlist": "Edit deletion reasons",
        "delete-toobig": "This page has a large edit history, over $1 {{PLURAL:$1|revision|revisions}}.\nDeletion of such pages has been restricted to prevent accidental disruption of {{SITENAME}}.",
        "delete-warning-toobig": "This page has a large edit history, over $1 {{PLURAL:$1|revision|revisions}}.\nDeleting it may disrupt database operations of {{SITENAME}};\nproceed with caution.",
-       "delete-cantedit": "You cannot delete this page because you do not have permission to edit it.",
+       "deleteprotected": "You cannot delete this page because it has been protected.",
        "deleting-backlinks-warning": "'''Warning:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Other pages]] link to or transclude the page you are about to delete.",
        "rollback": "Roll back edits",
        "rollback_short": "Rollback",
        "import-summary": "",
        "importinterwiki": "Transwiki import",
        "import-interwiki-text": "Select a wiki and page title to import.\nRevision dates and editors' names will be preserved.\nAll transwiki import actions are logged at the [[Special:Log/import|import log]].",
-       "import-interwiki-source": "Source wiki/page:",
+       "import-interwiki-sourcewiki": "Source wiki:",
+       "import-interwiki-sourcepage": "Source page:",
        "import-interwiki-history": "Copy all history revisions for this page",
        "import-interwiki-templates": "Include all templates",
        "import-interwiki-submit": "Import",
index 3cf01bc..8b254c7 100644 (file)
@@ -37,7 +37,8 @@
                        "Yekrats",
                        "Александр Сигачёв",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Fitoschido"
                ]
        },
        "tog-underline": "Substreki ligilojn",
        "hidetoc": "kaŝi",
        "collapsible-collapse": "kaŝi",
        "collapsible-expand": "Montri",
+       "confirmable-yes": "Jes",
+       "confirmable-no": "Ne",
        "thisisdeleted": "Vidi aŭ restarigi $1?",
        "viewdeleted": "Ĉu rigardi $1?",
        "restorelink": "{{PLURAL:$1|unu forigitan version|$1 forigitajn versiojn}}",
        "searchprofile-advanced-tooltip": "Serĉi en specialaj nomspacoj",
        "search-result-size": "$1 ({{PLURAL:$2|1 vorto|$2 vortoj}})",
        "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membroj}} ({{PLURAL:$2|1 subkategorio|$2 subkategorioj}}, {{PLURAL:$3|1 dosiero|$3 dosieroj}})",
-       "search-result-score": "Trafeco: $1%",
        "search-redirect": "(alidirektilo $1)",
        "search-section": "(sekcio $1)",
        "search-suggest": "Ĉu vi intenciis: $1",
        "uploadwarning": "Alŝuta averto",
        "uploadwarning-text": "Bonvolu ŝanĝi la dosieran priskribon kaj reprovi.",
        "savefile": "Konservi dosieron",
-       "uploadedimage": "alŝutis \"[[$1]]\"",
-       "overwroteimage": "alŝutis novan version de \"[[$1]]\"",
        "uploaddisabled": "Alŝutado estas malŝaltita",
        "copyuploaddisabled": "Alŝuto de URL malfunkciigita.",
        "uploaddisabledtext": "Alŝutado de dosieroj estas malebligita.",
index 3bf50a3..2fa6923 100644 (file)
                        "Koavf",
                        "Themasterriot",
                        "AVIADOR",
-                       "F3RaN"
+                       "F3RaN",
+                       "Amitie 10g"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "versionrequiredtext": "Se necesita la versión $1 de MediaWiki para utilizar esta página. Para más información, consultar [[Special:Version|la página de versión]]",
        "ok": "Aceptar",
        "retrievedfrom": "Obtenido de «$1»",
-       "youhavenewmessages": "Tienes $1 ($2).",
-       "youhavenewmessagesfromusers": "Tienes $1 de {{PLURAL:$3|otro usuario|$3 usuarios}} ($2).",
+       "youhavenewmessages": "{{PLURAL:$3|Tienes}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Tienes}} $1 de {{PLURAL:$3|otro usuario|$3 usuarios}} ($2).",
        "youhavenewmessagesmanyusers": "Tienes $1 de muchos usuarios ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|un mensaje nuevo|999=mensajes nuevos}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|último cambio|999=últimos cambios}}",
        "parser-template-recursion-depth-warning": "Se ha excedido el límite de recursión de plantillas ($1)",
        "language-converter-depth-warning": "El límite de profundidad del convertidor de idioma ha excedido ($1)",
        "node-count-exceeded-category": "Páginas donde se supera el número de nodos",
-       "node-count-exceeded-category-desc": "Una categoría para las páginas donde se supera el número de nodos.",
+       "node-count-exceeded-category-desc": "La página supera el número máximo de nodos.",
        "node-count-exceeded-warning": "Página que ha superado el número de nodos",
        "expansion-depth-exceeded-category": "Páginas donde se supera la profundidad de expansión",
        "expansion-depth-exceeded-category-desc": "Esta página supera el límite de extensión.",
        "nextn-title": "Próximos $1 {{PLURAL:$1|resultado|resultados}}",
        "shown-title": "Mostrar $1 {{PLURAL:$1|resultado|resultados}} por página",
        "viewprevnext": "Ver ($1 {{int:pipe-separator}} $2) ($3).",
-       "searchmenu-exists": "'''Hay una página llamada «[[:$1]]» en este wiki.'''",
+       "searchmenu-exists": "<strong>Hay una página llamada «[[:$1]]» en este wiki.</strong> {{PLURAL:$2|0=|Véase también los otros resultados de búsqueda encontrados.}}",
        "searchmenu-new": "<strong>Crear la página «[[:$1]]» en este wiki.</strong> {{PLURAL:$2|0=|Véase también la página encontrada con la búsqueda.|Véanse también los resultados de la búsqueda.}}",
        "searchprofile-articles": "Páginas de contenido",
        "searchprofile-images": "Multimedia",
        "index-category-desc": "La página contiene la palabra mágica <code><nowiki>__INDEX__</nowiki></code> (y está en un espacio de nombres donde la función está activada); y por ello los robots la indizarán.",
        "post-expand-template-inclusion-category-desc": "Después de expandir todas las plantillas, el tamaño de la página es más grande que <code>$wgMaxArticleSize</code>, así que algunas plantillas no se expandieron.",
        "post-expand-template-argument-category-desc": "Después de expandir un argumento de plantilla (algunos en tres llaves, como <code>{{{Foo}}})</code>, la página es más grande que <code>$wgMaxArticleSize</code>.",
-       "expensive-parserfunction-category-desc": "Páginas que contienen demasiadas funciones sintácticas muy costosas (como <code>#ifexist</code>). Consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
-       "broken-file-category-desc": "Categoría añadida cuando una página contiene enlaces rotos a archivos (enlaces a archivos incrustados cuando el archivo no existe).",
-       "hidden-category-category-desc": "Esta es una categoría con <code><nowiki>__HIDDENCAT__</nowiki></code> en ella, que evita que aparezca en el cuadro de enlace de la categoría en las páginas, de forma predeterminada.",
+       "expensive-parserfunction-category-desc": "La página usa demasiadas funciones sintácticas costosas (como <code>#ifexist</code>). Consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "La página contiene un enlace roto a archivos (un enlace para incrustar un archivo cuando el archivo no existe).",
+       "hidden-category-category-desc": "La categoría contiene <code><nowiki>__HIDDENCAT__</nowiki></code> en su página de contenido, lo que evita que aparezca en el cuadro de enlaces de categorías en las páginas, de forma predeterminada.",
        "trackingcategories-nodesc": "No hay descripción disponible.",
        "trackingcategories-disabled": "La categoría está desactivada",
        "mailnologin": "Ninguna dirección de envio",
        "delete-edit-reasonlist": "Editar razones de borrado",
        "delete-toobig": "Esta página tiene un historial muy grande, con más de $1 {{PLURAL:$1|revisión|revisiones}}. Borrar este tipo de páginas ha sido restringido para prevenir posibles problemas en {{SITENAME}}.",
        "delete-warning-toobig": "Esta página tiene un historial de más de $1 {{PLURAL:$1|revisión|revisiones}}. Eliminarla puede perturbar las operaciones de la base de datos de {{SITENAME}}. Ten cuidado al borrar.",
+       "delete-cantedit": "No puedes borrar esta página porque no tienes permiso de editarla.",
        "deleting-backlinks-warning": "'''Advertencia:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Otras páginas]] enlazan o transcluyen la página que vas a eliminar.",
        "rollback": "Revertir ediciones",
        "rollback_short": "Revertir",
        "revdelete-unrestricted": "restricciones para administradores eliminadas",
        "logentry-move-move": "$1 movió la página $3 a $4",
        "logentry-move-move-noredirect": "$1 movió la página $3 a $4 sin dejar una redirección",
-       "logentry-move-move_redir": "$1 movió la página $3 a $4 sobre una redirección",
-       "logentry-move-move_redir-noredirect": "$1 movió la página $3 a $4 sobre una redirección y sin dejar una redirección",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|trasladó}} la página $3 a $4 sobre una redirección",
+       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|trasladó}} la página $3 a $4 sobre una redirección y sin dejar una redirección",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|marcó}} como patrullada la edición $4 de la página $3",
        "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|marcó}} automáticamente la edición $4 de la página $3 como patrullada",
        "logentry-newusers-newusers": "La cuenta de usuario $1 ha sido {{GENDER:$2|creada}}",
        "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-row-enabled": "* <code>$1</code> / $2 (activado)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactivado''')"
 }
index a3879ff..aeabc65 100644 (file)
@@ -21,7 +21,8 @@
                        "Silvar",
                        "Võrok",
                        "WikedKentaur",
-                       "לערי ריינהארט"
+                       "לערי ריינהארט",
+                       "Boxmein"
                ]
        },
        "tog-underline": "Linkide allakriipsutus:",
        "hidetoc": "peida",
        "collapsible-collapse": "Peida",
        "collapsible-expand": "Näita",
+       "confirmable-confirm": "Kas {{GENDER:$1|oled}} kindel?",
+       "confirmable-yes": "Jah",
+       "confirmable-no": "Ei",
        "thisisdeleted": "Vaata $1 või taasta?",
        "viewdeleted": "Vaata $1?",
        "restorelink": "{{PLURAL:$1|üht|$1}} kustutatud versiooni",
        "invalidtitle-knownnamespace": "Vigane pealkiri nimeruumis \"$2\" tekstiga \"$3\"",
        "invalidtitle-unknownnamespace": "Vigane pealkiri nimeruuminumbriga $1 ja tekstiga \"$2\"",
        "exception-nologin": "Sisse logimata",
-       "exception-nologin-text": "Selle lehekülje või toimingu jaoks [[Special:Userlogin|logi]] palun sisse.",
+       "exception-nologin-text": "Selle lehekülje või toimingu jaoks logi palun sisse.",
        "exception-nologin-text-manual": "Pead $1, et sellele leheküljele või toimingule ligi pääseda.",
        "virus-badscanner": "Viga konfiguratsioonis: tundmatu viirusetõrje: ''$1''",
        "virus-scanfailed": "skaneerimine ebaõnnestus (veakood $1)",
        "parser-template-recursion-depth-warning": "Malli rekursiivse kasutamise limiit on ületatud ($1)",
        "language-converter-depth-warning": "Keeleteisendaja sügavuspiir ületatud ($1)",
        "node-count-exceeded-category": "Ületatud sõlmemääraga leheküljed",
-       "node-count-exceeded-category-desc": "Ületatud sõlmemääraga lehekülgede kategooria.",
+       "node-count-exceeded-category-desc": "Lehekülg ületab sõlmede ülemmäära.",
        "node-count-exceeded-warning": "Lehekülg ületas sõlmemäära.",
        "expansion-depth-exceeded-category": "Ületatud hõrendussügavusega leheküljed",
-       "expansion-depth-exceeded-category-desc": "Ületatud hõrendussügavusega lehekülgede kategooria.",
+       "expansion-depth-exceeded-category-desc": "Lehekülg ületab hõrendussügavuse ülemmäära.",
        "expansion-depth-exceeded-warning": "Lehekülg ületas hõrendussügavuse.",
        "converter-manual-rule-error": "Tõrge keelevariandi käsivahetusreeglis",
        "undo-success": "Selle redaktsiooni käigus tehtud muudatusi saab eemaldada. Palun kontrolli allolevat võrdlust veendumaks, et tahad need muudatused tõepoolest eemaldada. Seejärel saad lehekülje salvestada.",
        "preferences": "Eelistused",
        "mypreferences": "Eelistused",
        "prefs-edits": "Redigeerimiste arv:",
-       "prefsnologintext2": "Pead $1, et oma eelistusi muuta.",
+       "prefsnologintext2": "Palun logi sisse, et oma eelistusi muuta.",
        "prefs-skin": "Kujundus",
        "skin-preview": "eelvaade",
        "datedefault": "Eelistus puudub",
        "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>.",
-       "expensive-parserfunction-category-desc": "Leheküljel on liiga palju kulukaid parserifunktsioone nagu <code>#ifexist</code>. Vaata [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit dokumentatsiooni].",
-       "broken-file-category-desc": "Kategooria lisatakse, kui leheküljel on katkine pildilink, millega manustatakse fail, mida pole olemas.",
+       "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.",
        "trackingcategories-nodesc": "Kirjeldus puudub.",
        "trackingcategories-disabled": "Kategooria on keelatud.",
        "mywatchlist": "Jälgimisloend",
        "watchlistfor2": "Kasutaja $1 $2 jaoks",
        "nowatchlist": "Sinu jälgimisloend on tühi.",
-       "watchlistanontext": "Oma jälgimisloendi nägemiseks ja muutmiseks pead $1.",
+       "watchlistanontext": "Palun logi sisse, et oma jälgimisloendit näha või muuta.",
        "watchnologin": "Ei ole sisse logitud",
        "addwatch": "Lisa jälgimisloendisse",
        "addedwatchtext": "Lehekülg \"[[:$1]]\" on lisatud sinu [[Special:Watchlist|jälgimisloendisse]].\nEdasised muudatused sellel leheküljel ja seotud aruteluleheküljel tuuakse ära jälgimisloendis.",
        "delete-edit-reasonlist": "Redigeeri kustutamise põhjuseid",
        "delete-toobig": "See lehekülg on pika redigeerimisajalooga – üle {{PLURAL:$1|ühe muudatuse|$1 muudatuse}}.\nSelle kustutamine on keelatud, et ära hoida ekslikku {{GRAMMAR:genitive|{{SITENAME}}}} töö häirimist.",
        "delete-warning-toobig": "See lehekülg on pika redigeerimislooga – üle {{PLURAL:$1|ühe muudatuse|$1 muudatuse}}.\nEttevaatust, selle kustutamine võib esile kutsuda häireid {{GRAMMAR:genitive|{{SITENAME}}}} andmebaasi töös.",
+       "delete-cantedit": "Seda lehekülge ei saa kustutada, kuna sul pole õigust seda redigeerida.",
        "deleting-backlinks-warning": "'''Hoiatus:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Teised leheküljed]] viitavad leheküljele, mida oled kustutamas, või see lehekülg on kasutuses mallina.",
        "rollback": "Tühista muudatused",
        "rollback_short": "Tühista",
        "autoblockid": "Automaatblokeering #$1",
        "block": "Kasutaja blokeerimine",
        "unblock": "Kasutaja blokeeringu eemaldamine",
-       "blockip": "Kasutaja blokeerimine",
+       "blockip": "Blokeeri {{GENDER:$1|kasutaja}}",
        "blockip-legend": "Kasutaja blokeerimine",
        "blockiptext": "See vorm on kindla IP-aadressi või kasutajanime kirjutamisõiguste blokeerimiseks.\nSeda tohib teha ainult vandalismi vältimiseks ja kooskõlas [[{{MediaWiki:Policy-url}}|{{GRAMMAR:genitive|{{SITENAME}}}} sisekorraga]].\nTäida ka põhjuse väli, näiteks viidates lehekülgedele, mis rikuti.",
        "ipaddressorusername": "IP-aadress või kasutajanimi:",
        "logentry-rights-rights": "$1 {{GENDER:$2|muutis}} kasutaja $3 rühmaliikmesust; enne oli $4, nüüd on $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|muutis}} kasutaja $3 rühmaliikmesust",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|viidi}} automaatselt üle teise rühma; enne oli $4, nüüd on $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|laadis üles}} faili $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|laadis üles}} uue versiooni failist $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|laadis üles}} faili $3",
        "rightsnone": "(puudub)",
        "feedback-bugornote": "Kui arvad, et oskad tehnilist probleemi üksikasjalikult kirjeldada, [$1 teata veast].\nKui ei, kasuta allolevat lihtsat vormi. Sinu kommentaar lisatakse koos kasutajanime ja teabega kasutatava võrgulehitsejaga kohta leheküljele \"[$3 $2]\".",
        "feedback-subject": "Teema:",
index ab0bb1f..fa8c288 100644 (file)
        "searchprofile-advanced-tooltip": "Lankideen izen zehatzetan bilatu",
        "search-result-size": "$1 ({{PLURAL:$2|hitz bat|$2 hitz}})",
        "search-result-category-size": "{{PLURAL:$1|kide 1|$1 kide}} ({{PLURAL:$2|azpikategoria 1|$2 azpikategoria}}, {{PLURAL:$3|fitxategi 1|$3 fitxategi}})",
-       "search-result-score": "Garrantzia: %$1",
        "search-redirect": "(«$1» orritik birbideratua)",
        "search-section": "($1 atala)",
        "search-suggest": "$1 esan nahi zenuen",
        "uploadwarning": "Igotzeko oharra",
        "uploadwarning-text": "Aldatu beheko fitxategiaren deskribapena, mesedez, eta saiatu berriz.",
        "savefile": "Fitxategia gorde",
-       "uploadedimage": "\"[[$1]]\" igo da",
-       "overwroteimage": "\"[[$1]]\"ren bertsio berri bat igo",
        "uploaddisabled": "Igoerak ezgaituta daude",
        "copyuploaddisabled": "URL bidezko igoera desaktibatuta.",
        "uploaddisabledtext": "Fitxategiak igotzea ezgaituta dago.",
        "watchlist-details": "{{PLURAL:$1|Orrialde $1|$1 orrialde}} jarraitzen, eztabaida orrialdeak kontuan hartu gabe.",
        "wlheader-enotif": "Posta bidezko ohartarazpena gaituta dago.",
        "wlheader-showupdated": "Bisitatu zenituen azken alditik aldaketak izan dituzten orrialdeak '''beltzez''' nabarmenduta daude.",
+       "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 $3",
        "watchlist-options": "Jarraitze-zerrendaren aukerak",
        "watching": "Zerrendan gehitzen...",
        "confirm-purge-bottom": "Orrialdea purgatzean katxea ezabatzen du eta orrialdearen bertsiorik eguneratuena erakustera behartzen du.",
        "confirm-watch-button": "Ados",
        "confirm-unwatch-button": "Ados",
+       "quotation-marks": "«$1»",
        "imgmultipageprev": "&larr; aurreko orrialdea",
        "imgmultipagenext": "hurrengo orrialdea &rarr;",
        "imgmultigo": "Joan!",
index 224adac..b4eb8d5 100644 (file)
        "talkpagelinktext": "Caraba",
        "specialpage": "Página Especial",
        "personaltools": "Herramientas presonalis",
-       "postcomment": "Nueva seción",
        "articlepage": "Vel artículu",
        "talk": "Caraba",
        "views": "Guipás",
        "externaldberror": "Marru d'autentificación esterna e la basi e datus, u bien nu t'alcuentras autorizau p'atualizal la tu cuenta esterna.",
        "login": "Entral",
        "nav-login-createaccount": "Entral/Crial cuenta",
-       "loginprompt": "Ebis atival las cookies pa entral en {{SITENAME}}.",
        "userlogin": "Entral/Crial cuenta",
        "userloginnocreate": "Entral",
        "logout": "Salil",
        "searchprofile-images-tooltip": "Landeal archivus",
        "searchprofile-everything-tooltip": "Landeal tol conteniu (encruyendu carabas)",
        "search-result-size": "$1 ({{PLURAL:$2|1 letra|$2 letras}})",
-       "search-result-score": "Emportáncia: $1%",
        "search-redirect": "(rederihil $1)",
        "search-section": "(seción $1)",
        "search-suggest": "Quieis izil: $1",
        "file-exists-duplicate": "Esti archivu es un dupricau {{PLURAL:$1|el siguienti archivu|los siguientis archivus}}:",
        "uploadwarning": "Avisu d´empuntu",
        "savefile": "Emburacal archivu",
-       "uploadedimage": "emputau \"[[$1]]\"",
-       "overwroteimage": "empuntá una nueva velsión de \"[[$1]]\"",
        "uploaddisabled": "Empuntus desativaus",
        "uploaddisabledtext": "El empuntu d'archivus está desativau.",
        "uploadscripted": "Esti archivu contieni script u cóigu HTML que puei sel mal entelpretau pol un escrucaol.",
        "watchlist-details": "{{PLURAL:$1|$1 artículu|$1 artículus}} vehilaus (sin contal las carabas).",
        "wlheader-enotif": "Se premitin notificacionis pol email.",
        "wlheader-showupdated": "Las páhinas que s'án emburacau dendi la úrtima vezi que las visoreasti son muestrás en '''negrina'''",
+       "wlnote": "Embahu {{PLURAL:$1|es el úrtimu chambu|son los úrtimus '''$1''' chambus}} enas úrtimas {{PLURAL:$2|oras|'''$2''' oras}}.",
        "wlshowlast": "Muestral úrtimus $1 oras $2 dias $3",
        "watchlist-options": "Ocionis de la mi lista e seguimientu",
        "watching": "Vehilandu...",
index 8b474a6..d425390 100644 (file)
@@ -36,7 +36,8 @@
                        "아라",
                        "Mostafadaneshvar",
                        "Pouyana",
-                       "Oldstoneage"
+                       "Oldstoneage",
+                       "Omid.koli"
                ]
        },
        "tog-underline": "خط کشیدن زیر پیوندها:",
        "language-converter-depth-warning": "محدودیت عمق مبدل زبانی رد شد ($1)",
        "node-count-exceeded-category": "صفحه‌هایی که از حداکثر تعداد گره تجاوز کرده‌اند",
        "node-count-exceeded-category-desc": "رده برای صفحاتی که در آنها شمارنده فراتر رفته است.",
-       "node-count-exceeded-warning": "صفحه از حداکثر تعداد گره تجاوز کرد",
+       "node-count-exceeded-warning": "صفحه از حداکثر تعداد گره، فراتر است",
        "expansion-depth-exceeded-category": "صفحه‌هایی که از حداکثر عمق بسط دادن تجاوز کرده‌اند",
        "expansion-depth-exceeded-category-desc": "رده برای صفحاتی که در آنها عمق گسترش فراتر رفته است.",
        "expansion-depth-exceeded-warning": "صفحه حداکثر عمق بسط دادن تجاوز کرد",
        "revdelete-radio-set": "پنهان",
        "revdelete-radio-unset": "نمایان",
        "revdelete-suppress": "از دسترسی مدیران به داده نیز مانند سایر کاربران جلوگیری به عمل آید.",
-       "revdelete-unsuppress": "خاتمهٔ محدودیت‌ها در مورد نسخه‌های انتخاب شده",
+       "revdelete-unsuppress": "خاتمهٔ محدودیت‌ها در مورد نسخه‌های انتخابشده",
        "revdelete-log": "دلیل:",
        "revdelete-submit": "اعمال بر {{PLURAL:$1|نسخهٔ|نسخه‌های}} انتخاب شده",
        "revdelete-success": "'''پیدایی نسخه با موفقیت به روز شد.'''",
        "difference-multipage": "(تفاوت بین صفحه‌ها)",
        "lineno": "سطر $1:",
        "compareselectedversions": "مقایسهٔ نسخه‌های انتخاب‌شده",
-       "showhideselectedversions": "نمایش/نهفتن نسخه‌های انتخاب شده",
+       "showhideselectedversions": "نمایش/نهفتن نسخه‌های انتخابشده",
        "editundo": "خنثی‌سازی",
        "diff-empty": "(بدون تفاوت)",
        "diff-multi-sameuser": "({{PLURAL:$1|یک نسخهٔ میانی|$1 نسخهٔ میانی}} توسط کاربر مشابهی که نشان داده نشده)",
        "alllogstext": "نمایش یک‌جای تمام سیاهه‌های موجود در {{SITENAME}}.\nمی‌توانید با انتخاب نوع سیاهه، نام کاربری (حساس به کوچکی و بزرگی حروف) و صفحه‌های تغییریافته (حساس به بزرگی و کوچکی حروف)، نمایش را محدودتر سازید.",
        "logempty": "مورد منطبق با منظور شما در سیاهه یافت نشد.",
        "log-title-wildcard": "صفحه‌هایی را جستجو کن که عنوانشان با این عبارت آغاز می‌شود",
-       "showhideselectedlogentries": "نمایش/نهفتن موارد انتخابی در سیاهه",
+       "showhideselectedlogentries": "تغییر پدیداری موارد انتخاب‌شده در سیاهه",
        "allpages": "همهٔ صفحه‌ها",
        "nextpage": "صفحهٔ بعد ($1)",
        "prevpage": "صفحهٔ قبلی ($1)",
        "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": "تÙ\88ابع Ù\87زÛ\8cÙ\86Ù\87â\80\8cبر Ú¯Ø±Ø§Ù\86 (Ù\85اÙ\86Ù\86د <code>#ifexist</code>) Ø²Û\8cادÛ\8c Ø¯Ø± ØµÙ\81جÙ\87 Ø´Ø§Ù\85Ù\84 Ø´Ø¯Ù\87â\80\8cاست. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit] را ببینید.",
+       "post-expand-template-argument-category-desc": "پس از گسترش یک آرگومان الگو (چیزی بین آکولادهای سه‌تایی، مانند <code>{{{Foo}}}</code>) صفحه بزرگتر از <code>$wgMaxArticleSize</code> می‌شود.",
+       "expensive-parserfunction-category-desc": "تÙ\88ابع Ù\87زÛ\8cÙ\86Ù\87â\80\8cبر Ú¯Ø±Ø§Ù\86 (Ù\85اÙ\86Ù\86د <code>#ifexist</code>) Ø²Û\8cادÛ\8c Ø¯Ø± ØµÙ\81جÙ\87 Ø§Ø³ØªÙ\81ادÙ\87 Ø´Ø¯Ù\87â\80\8c است. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit] را ببینید.",
        "broken-file-category-desc": "رده افزود می‌شود اگر صفحه شامل یک پیوند شکسته باشد (یا یک پبوند به پروندهٔ توکاری است که وجود ندارد)",
        "hidden-category-category-desc": "این یک ردهٔ <code><nowiki>__HIDDENCAT__</nowiki></code> درونش است که از نمایشش در جعبهٔ پیوندهای رده به‌صورت پیش‌فرض جلوگیری می‌کند.",
        "trackingcategories-nodesc": "توضیحی وجود ندارد.",
        "delete-edit-reasonlist": "ویرایش دلایل حذف",
        "delete-toobig": "این صفحه تاریخچهٔ ویرایشی بزرگی دارد، که شامل بیش از $1 {{PLURAL:$1|نسخه|نسخه}} است.\nبه منظور جلوگیری از اختلال ناخواسته در {{SITENAME}} حذف این گونه صفحه‌ها محدود شده‌است.",
        "delete-warning-toobig": "این صفحه تاریخچهٔ ویرایشی بزرگی دارد، که شامل بیش از $1 {{PLURAL:$1|نسخه|نسخه}} است.\nحذف آن ممکن است که عملکرد پایگاه دادهٔ {{SITENAME}} را مختل کند;\nبا احتیاط ادامه دهید.",
+       "delete-cantedit": "چون شما مجوز ویرایش این صفحه ندارید، نمی‌توانید حذفش کنید.",
        "deleting-backlinks-warning": "''' هشدار:''' پیوند [[Special:WhatLinksHere/{{FULLPAGENAME}}|صفحات دیگر]] یا تراگنجایش صفحهٔ شما برای حذف.",
        "rollback": "واگردانی ویرایش‌ها",
        "rollback_short": "واگردانی",
index 16cc141..f28373f 100644 (file)
        "invalidtitle-knownnamespace": "Virheellinen sivunimi, nimiavaruus \"$2\" ja teksti \"$3\"",
        "invalidtitle-unknownnamespace": "Virheellinen sivunimi, tuntematon nimiavaruus numero $1 ja teksti \"$2\"",
        "exception-nologin": "Et ole kirjautunut sisään",
-       "exception-nologin-text": "Ole hyvä ja [[Special:Userlogin|kirjaudu sisään]], niin pääset tälle sivulle tai tähän toimintoon.",
+       "exception-nologin-text": "Ole hyvä ja kirjaudu sisään, niin pääset tälle sivulle tai tähän toimintoon.",
        "exception-nologin-text-manual": "Sinun pitää $1 jotta pääset tälle sivulle tai toimintoon.",
        "virus-badscanner": "Virheellinen asetus: Tuntematon virustutka: ''$1''",
        "virus-scanfailed": "virustarkistus epäonnistui virhekoodilla $1",
        "parser-template-recursion-depth-warning": "Mallineen rekursioraja ylittyi ($1)",
        "language-converter-depth-warning": "Kielimuuntimen syvyysraja ylittyi ($1)",
        "node-count-exceeded-category": "Sivut, joissa solmumäärä on ylitetty",
-       "node-count-exceeded-category-desc": "Luokka sivuille, joissa solmujen lukumäärä (node-count) on ylitetty.",
-       "node-count-exceeded-warning": "Sivu ylitti solmumäärän",
+       "node-count-exceeded-category-desc": "Tämä sivu ylittää suurimman sallitun solmujen lukumäärän (node count).",
+       "node-count-exceeded-warning": "Sivu ylitti solmumäärän (node count)",
        "expansion-depth-exceeded-category": "Sivut, joissa laajentamissyvyys on ylitetty",
-       "expansion-depth-exceeded-category-desc": "Tämä on luokka sivuille, joissa laajentamissyvyys (expansion depth) on ylitetty.",
+       "expansion-depth-exceeded-category-desc": "Tämä sivu ylittää suurimman sallitun laajentamissyvyyden (expansion depth).",
        "expansion-depth-exceeded-warning": "Sivu ylitti laajentamissyvyyden.",
        "parser-unstrip-loop-warning": "Unstrip-silmukka havaittiin",
        "parser-unstrip-recursion-limit": "Unstrip-rekursion enimmäissyvyys ($1) ylitettiin",
        "preferences": "Asetukset",
        "mypreferences": "Asetukset",
        "prefs-edits": "Muokkauksia",
-       "prefsnologintext2": "Sinun pitää $1 ennen kuin voit muuttaa käyttäjän asetuksia.",
+       "prefsnologintext2": "Sinun pitää kirjautua sisään ennen kuin voit muuttaa omia asetuksiasi.",
        "prefs-skin": "Ulkoasu",
        "skin-preview": "esikatselu",
        "datedefault": "Ei omaa määrittelyä",
        "recentchangeslinked-feed": "Linkitettyjen sivujen muutokset",
        "recentchangeslinked-toolbox": "Linkitettyjen sivujen muutokset",
        "recentchangeslinked-title": "Sivulta $1 linkitettyjen sivujen muutokset",
-       "recentchangeslinked-summary": "Tämä toimintosivu näyttää muutokset sivuihin, joihin on viitattu tältä sivulta. [[Special:Watchlist|Tarkkailulistallasi]] olevat sivut on '''lihavoitu'''.",
+       "recentchangeslinked-summary": "Tämä on luettelo muutoksista, jotka on viimeksi tehty niihin sivuihin, joihin johtaa linkki tietystä sivusta (tai jonkun määrätyn luokan sisältämistä sivuista). Omalla [[Special:Watchlist|tarkkailulistallasi]] olevat sivut on <strong>lihavoitu</strong>.",
        "recentchangeslinked-page": "Sivu",
-       "recentchangeslinked-to": "Näytä muutokset sivuihin, joilla on linkki annettuun sivuun",
+       "recentchangeslinked-to": "Näytä sen sijaan muutokset sivuihin, joista on linkki tähän sivuun",
        "upload": "Tallenna tiedosto",
        "uploadbtn": "Tallenna tiedosto",
        "reuploaddesc": "Peruuta tallennus ja palaa tallennuslomakkeelle.",
        "protectedtitles": "Suojatut sivunimet",
        "protectedtitles-summary": "Tällä sivulla on lueteltu ne sivut, jotka on tällä hetkellä suojattu uudelleenluonnilta. Nähdäksesi luettelon olemassaolevista suojatuista sivuista katso [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Ei suojattuja sivunimiä näillä hakuehdoilla.",
-       "listusers": "Käyttäjälista",
+       "listusers": "Käyttäjien luettelo",
        "listusers-editsonly": "Näytä vain käyttäjät, joilla on muokkauksia",
        "listusers-creationsort": "Lajittele tunnuksen luontipäivämäärän mukaan",
        "listusers-desc": "Lajittele alenevassa järjestyksessä",
        "trackingcategories-desc": "Kriteerit luokkaan joutumiselle",
        "noindex-category-desc": "Tätä sivua eivät hakurobotit indeksoi, koska sivulla on taikasana <code><nowiki>__NOINDEX__</nowiki></code> ja koska sivu on sellaisessa nimiavaruudessa, jossa taikasanan käyttö on sallittua.",
        "index-category-desc": "Tällä sivulla on koodi <code><nowiki>__INDEX__</nowiki></code> ja sivu on sellaisessa nimiavaruudessa, jossa koodin käyttö on sallittua. Tämän vuoksi hakurobotit indeksoivat tämän sivun, vaikka ilman koodia sivua ei indeksoitaisi normaalisti.",
-       "post-expand-template-inclusion-category-desc": "Jos kaikki mallineet laajennetaan, sivun koko on suurempi kuin <code>$wgMaxArticleSize</code>. Tämän vuoksi kaikkia mallineita ei laajennettu.",
-       "post-expand-template-argument-category-desc": "Kun mallineen argumentti on laajennettu (argumentti on merkkijono kolmen kaarisulun sisällä kuten <code>{{{Foo}}}</code>), sivu on suurempi kuin <code>$wgMaxArticleSize</code>.",
-       "expensive-parserfunction-category-desc": "Liian monta resursseja vaativaa jäsenninfunktiota (esimerkiksi <code>#ifexist</code>) on sisällytetty sivulle. Katso [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
-       "broken-file-category-desc": "Tämä luokka sisältää ne sivut, joissa on rikkinäinen tiedostolinkki. Tällä tarkoitetaan linkkiä sellaiseen tiedostoon, jota ei olemassa.",
-       "hidden-category-category-desc": "Tämä on luokka, joka sisältää koodin <code><nowiki>__HIDDENCAT__</nowiki></code>. Koodi estää luokan näkymisen sivujen alareunassa olevassa luokkien laatikossa oletusarvoisesti.",
+       "post-expand-template-inclusion-category-desc": "Sivun koko on suurempi kuin <code>$wgMaxArticleSize</code>, kun kaikki mallineet on laajennettu. Tämän vuoksi joitakin mallineita ei laajennettu.",
+       "post-expand-template-argument-category-desc": "Sivu on suurempi kuin <code>$wgMaxArticleSize</code>, kun mallineen argumentti on laajennettu (argumentti on merkkijono kolmen aaltosulun sisällä kuten <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "Tämä sivu käyttää liian monta resursseja vaativaa jäsenninfunktiota (kuten <code>#ifexist</code>). Katso [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "Tämä sivu sisältää rikkinäisen tiedostolinkin. Tällä tarkoitetaan linkkiä sellaiseen tiedostoon, jota ei olemassa.",
+       "hidden-category-category-desc": "Tämä luokka sisältää koodin <code><nowiki>__HIDDENCAT__</nowiki></code> sen tekstisisällössä. Koodi estää luokan näkymisen sivujen alareunassa olevassa luokkien laatikossa kuten yleensä.",
        "trackingcategories-nodesc": "Ei kuvausta olemassa.",
        "trackingcategories-disabled": "Luokka on poistettu käytöstä",
        "mailnologin": "Lähettäjän osoite puuttuu",
        "mywatchlist": "Tarkkailulista",
        "watchlistfor2": "Käyttäjälle $1 $2",
        "nowatchlist": "Tarkkailulistallasi ei ole sivuja.",
-       "watchlistanontext": "Sinun täytyy $1, jos haluat käyttää tarkkailulistaa.",
+       "watchlistanontext": "Sinun täytyy kirjautua sisään, jos haluat muokata kohteita omalla tarkkailulistallasi.",
        "watchnologin": "Et ole kirjautunut sisään",
        "addwatch": "Lisää tarkkailulistalle",
        "addedwatchtext": "Sivu '''[[:$1]]''' on lisätty [[Special:Watchlist|tarkkailulistallesi]].\nTulevaisuudessa sivuun ja sen keskustelusivuun tehtävät muutokset listataan täällä.",
        "delete-edit-reasonlist": "Muokkaa poistosyitä",
        "delete-toobig": "Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistamista on rajoitettu suorituskykysyistä.",
        "delete-warning-toobig": "Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistaminen voi haitata sivuston suorituskykyä.",
+       "delete-cantedit": "Et voi poistaa tätä sivua, koska sinulla ei ole oikeutta sen muokkaamiseen.",
        "deleting-backlinks-warning": "'''Varoitus:''' Sivulle, jota olet poistamassa, johtaa [[Special:WhatLinksHere/{{FULLPAGENAME}}|linkkejä muilta sivuilta]], tai sivu on sisällytetty muuhun sivuun.",
        "rollback": "palauta aiempaan versioon",
        "rollback_short": "Palautus",
        "protectlogpage": "Suojausloki",
        "protectlogtext": "Alla on loki muutoksista sivujen suojauksiin. Luettelo tällä hetkellä suojatuista sivuista löytyy [[Special:ProtectedPages|suojattujen sivujen luettelosta]].",
        "protectedarticle": "suojasi sivun [[$1]]",
-       "modifiedarticleprotection": "muutti sivun [[$1]] suojaustasoa",
+       "modifiedarticleprotection": "muutti sivun [[$1]] suojausasetuksia",
        "unprotectedarticle": "poisti suojauksen sivulta [[$1]]",
        "movedarticleprotection": "siirsi suojausasetukset sivulta [[$2]] sivulle [[$1]]",
        "protect-title": "Muuta suojausta sivulla ”$1”",
-       "protect-title-notallowed": "Sivun $1 suojaustaso",
+       "protect-title-notallowed": "Katsele kohteen $1 suojauksen tasoa",
        "prot_1movedto2": "siirsi sivun [[$1]] uudelle nimelle [[$2]]",
        "protect-badnamespace-title": "Nimiavaruus ei suojattavissa",
        "protect-badnamespace-text": "Tämän nimiavaruuden sivuja ei voi suojata.",
        "autoblockid": "Automaattinen esto #$1",
        "block": "Estä käyttäjä",
        "unblock": "Poista käyttäjän esto",
-       "blockip": "Estä käyttäjä",
+       "blockip": "Estä {{GENDER:$1|käyttäjä}}",
        "blockip-legend": "Estä käyttäjä",
        "blockiptext": "Tällä toiminnolla voit estää käyttäjätunnusta tai IP-osoitetta muokkaamasta.<br />\nTällainen muokkausesto pitäisi asettaa vain vandalismin torjumiseksi ja [[{{MediaWiki:Policy-url}}|käytännön]] mukaisesti.\nKirjoita eston syy alla olevaan kenttään.",
        "ipaddressorusername": "IP-osoite tai käyttäjätunnus",
        "ipb-unblock-addr": "Poista käyttäjän $1 esto",
        "ipb-unblock": "Poista käyttäjän tai IP-osoitteen muokkausesto",
        "ipb-blocklist": "Näytä voimassa olevat estot",
-       "ipb-blocklist-contribs": "Käyttäjän $1 muokkaukset",
+       "ipb-blocklist-contribs": "Käyttäjän {{GENDER:$1|$1}} muokkaukset",
        "unblockip": "Muokkauseston poisto käyttäjältä",
        "unblockiptext": "Tällä lomakkeella voit poistaa käyttäjän tai IP-osoitteen muokkauseston.",
        "ipusubmit": "Poista tämä esto",
index 5a3397d..3bc686f 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Kaganer",
-                       "Mestos"
+                       "Mestos",
+                       "아라"
                ]
        },
        "tog-underline": "Linkitten alleviivaus",
@@ -15,7 +16,6 @@
        "tog-showtoolbar": "Näytä työneuvopalkki (JavaScript)",
        "tog-editondblclick": "Mookkaa sivuja kaksoisknapituksella (JavaScript)",
        "tog-editsectiononrightclick": "Aktiveeraa seksuuni mookkaus oikeapuolen klikkauksella seksuuni tittelhiin (JavaScript)",
-       "tog-rememberpassword": "Muista minun lokkauksen tässä weppilukijassa (eninthään $1 {{PLURAL:$1|päivä|päivää}})",
        "tog-watchcreations": "Lissää sivut mitä luon valvontasivule",
        "tog-watchdefault": "Lissää sivut mitä mie mookkaan valvontasivule",
        "tog-watchmoves": "Lissää sivut mitä mie siirän minun valvontasivule",
        "qbmyoptions": "Minun inställninkit",
        "faq": "Useasti kysytyt kysymykset",
        "faqpage": "Project:Useasti kysytyt kysymykset",
-       "vector-action-addsection": "Lissää aine",
-       "vector-action-delete": "Ota poies",
-       "vector-action-move": "Siirä",
-       "vector-action-protect": "Suojaa",
-       "vector-action-undelete": "Pane takashiin",
-       "vector-action-unprotect": "Muuta suojaa",
-       "vector-view-create": "Luo",
-       "vector-view-edit": "Mookkaa",
-       "vector-view-history": "Näytä histuuria",
-       "vector-view-view": "Lue",
-       "vector-view-viewsource": "Näytä lähekooti",
        "actions": "Toiminat",
        "namespaces": "Nimityhjyyet",
        "variants": "Varianttia",
        "remembermypassword": "Muista minun lokkauksen tässä taattorissa (korkeinthaans $1 {{PLURAL:$1|päivä|päivää}})",
        "login": "Lokkaa sisäle",
        "nav-login-createaccount": "Lokkaa sisäle / luo konttu",
-       "loginprompt": "Lokkauksheen tähhään {{SITENAME}} tarvithaan ette olet aktiveeranu kuukit .",
        "userlogin": "Lokkaa sisäle/ luo konttu",
        "userlogout": "Lokkaa ulos",
        "nologin": "Eikos sulla ole käyttäjäkonttua, '''$1'''.",
        "searchmenu-exists": "'''Sivu [[:$1]] löytyy tästä wikistä.'''",
        "searchmenu-new": "'''Luo sivu ''[[:$1]]'' tähhaän wikhiin.'''",
        "searchprofile-articles": "Sisältösivut",
-       "searchprofile-project": "Apu ja prujektisivut",
        "searchprofile-images": "Mylttimeetia",
        "searchprofile-everything": "Kaikki",
        "searchprofile-advanced": "Avanseerattu",
        "searchprofile-articles-tooltip": "Hae nimityhjyyestä $1",
-       "searchprofile-project-tooltip": "Hae nimityhjyyestä $1",
        "searchprofile-images-tooltip": "Hae fiiliä",
        "searchprofile-everything-tooltip": "Hae kaikesta (keskustelusivut kans)",
        "searchprofile-advanced-tooltip": "Hae tietyissä nimityhjyissä",
        "recentchanges-label-bot": "Tämän muutoksen teki botti",
        "recentchanges-label-unpatrolled": "Tätä muutosta ei ole vielä tarkistettu",
        "rcnotefrom": "Alla on muutokset '''$2'''lähtien. (korkeinthaans '''$1''' näytethään).",
-       "rclistfrom": "Näytä uuet muutokset jälkhiin $1",
+       "rclistfrom": "Näytä uuet muutokset jälkhiin $3 $2",
        "rcshowhideminor": "$1 pienet muutokset",
        "rcshowhidebots": "$1 ropootit",
        "rcshowhideliu": "\n$1 sisäle lokaattuja käyttäjiä",
        "upload": "Lattaa ylös fiili",
        "uploadlogpage": "Ylöslattauksen loki",
        "filedesc": "Yhteenveto",
-       "uploadedimage": "lattasi ylös [[$1]]",
        "license": "Lisensi",
        "license-header": "Lisensi",
        "file-anchor-link": "Fiili",
        "booksources-go": "Mene",
        "log": "Lokit",
        "allpages": "Kaikki sivut",
-       "alphaindexline": "$1…$2",
        "allarticles": "Kaikki sivut",
        "allpagessubmit": "Mene",
        "categories": "Katekuurit",
index 2e56326..40620b4 100644 (file)
        "talkpagelinktext": "Kjak",
        "specialpage": "Serstøk síða",
        "personaltools": "Persónlig amboð",
-       "postcomment": "Nýtt brot",
        "articlepage": "Vís síðu við innihaldi",
        "talk": "Kjak",
        "views": "Skoðanir",
        "externaldberror": "Antin var talan um ein atgongd dátubasu feil, ella hevur tú ikki loyvi til at dagføra tína eksternu kontu.",
        "login": "Rita inn",
        "nav-login-createaccount": "Stovna kontu ella rita inn",
-       "loginprompt": "Cookies má verða sett til fyri at innrita á {{SITENAME}}.",
        "userlogin": "Stovna kontu ella rita inn",
        "userloginnocreate": "Rita inn",
        "logout": "Útrita",
        "searchprofile-advanced-tooltip": "Leita í ávísum navnaøkjum",
        "search-result-size": "$1 ({{PLURAL:$2|1 orð|$2 orð}})",
        "search-result-category-size": "{{PLURAL:$1|1 limur|$1 limir}} ({{PLURAL:$2|1 undirbólkur|$2 undirbólkar}}, {{PLURAL:$3|1 fíla|$3 fílur}})",
-       "search-result-score": "Viðkomandi: $1%",
        "search-redirect": "(umstilling $1)",
        "search-section": "(sektión $1)",
        "search-suggest": "Meinti tú: $1",
        "uploadwarning": "Ávaring",
        "uploadwarning-text": "Vinarliga broyt frágreiðingina fyri fíluna og royn umaftur.",
        "savefile": "Goym fílu",
-       "uploadedimage": "sent \"[[$1]]\" upp",
-       "overwroteimage": "legði út eina nýggja versjón av \"[[$1]]\"",
        "uploaddisabled": "Útleggjan av fílum er óvirkin.",
        "copyuploaddisabled": "Útleggjan frá URL er óvirkið.",
        "uploaddisabledtext": "Útleggjan av fílum er óvirkið.",
        "watchlist-details": "{{PLURAL:$1|$1 síða|$1 síður}} á tínum vaktarlista, kjaksíður ikki íroknaðar.",
        "wlheader-enotif": "Tað ber nú til at senda teldupost.",
        "wlheader-showupdated": "Síður sum eru broyttar síðan tú seinast vitjaði tær, eru vístar við '''feitum'''.",
+       "wlnote": "Niðanfyri {{PLURAL:$1|stendur seinasta broytingin|standa seinastu '''$1''' broytingarnar}} seinasta/u {{PLURAL:$2| tíman|'''$2''' tímarnar}} hin $3 kl. $4",
        "wlshowlast": "Vís seinastu $1 tímar $2 dagar $3",
        "watchlist-options": "Møguleikar í ansingarlistanum",
        "watching": "Eftirlitir...",
index 4e98715..8de0858 100644 (file)
        "delete-edit-reasonlist": "Modifier les motifs de suppression de page",
        "delete-toobig": "Cette page possède un historique important de modifications, dépassant $1 version{{PLURAL:$1||s}}.\nLa suppression de telles pages a été restreinte pour prévenir des perturbations accidentelles de {{SITENAME}}.",
        "delete-warning-toobig": "Cette page possède un historique important de modifications, dépassant $1 version{{PLURAL:$1||s}}.\nLa supprimer peut perturber le fonctionnement de la base de données de {{SITENAME}} ;\nveuiller ne procéder qu'avec prudence.",
+       "delete-cantedit": "Vous ne pouvez pas supprimer cette page car vous n’avez pas le droit de la modifier.",
        "deleting-backlinks-warning": "'''Attention :''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|D’autres pages]] ont un lien vers ou incorporent la page que vous allez supprimer.",
        "rollback": "Révoquer les modifications",
        "rollback_short": "Révoquer",
index 02f26b9..29c6d43 100644 (file)
        "talkpagelinktext": "discutar",
        "specialpage": "Pâge spèciâla",
        "personaltools": "Outils a sè",
-       "postcomment": "Novèla sèccion",
        "articlepage": "Vêde la pâge de contegnu",
        "talk": "Discussion",
        "views": "Vues",
        "externaldberror": "Ou ben na fôta est arrevâye avouéc la bâsa de balyês d’ôtentificacion de defôr ou ben vos éte pas ôtorisâ{{GENDER:||ye|(ye)}} a betar a jorn voutron compto de defôr.",
        "login": "Branchement",
        "nav-login-createaccount": "Sè branchiér / fâre un compto",
-       "loginprompt": "Vos dête activar los tèmouens (''cookies'') por vos branchiér a {{SITENAME}}.",
        "userlogin": "Sè branchiér / fâre un compto",
        "userloginnocreate": "Sè branchiér",
        "logout": "Sè dèbranchiér",
        "searchprofile-advanced-tooltip": "Chouèsir los èspâços de noms por la rechèrche",
        "search-result-size": "$1 ($2 mot{{PLURAL:$2||s}})",
        "search-result-category-size": "$1 membro{{PLURAL:$1||s}} ($2 sot-catègorie{{PLURAL:$2||s}}, $3 fichiér{{PLURAL:$3||s}})",
-       "search-result-score": "Rapôrt : $1%",
        "search-redirect": "(redirèccion dês $1)",
        "search-section": "(sèccion $1)",
        "search-suggest": "Voléd-vos dére : $1",
        "uploadwarning": "Semonce pendent lo tèlèchargement",
        "uploadwarning-text": "Se vos plét, changiéd la dèscripcion du fichiér ce-desot et pués tornâd èprovar.",
        "savefile": "Encartar lo fichiér",
-       "uploadedimage": "at tèlèchargiê « [[$1]] »",
-       "overwroteimage": "at tèlèchargiê na novèla vèrsion de « [[$1]] »",
        "uploaddisabled": "Tèlèchargements dèsactivâs.",
        "copyuploaddisabled": "Tèlèchargement per URL dèsactivâ.",
        "uploaddisabledtext": "Los tèlèchargements de fichiérs sont dèsactivâs.",
        "watchlist-details": "Y at $1 pâge{{PLURAL:$1||s}} dedens voutra lista de siuvu, sen comptar les pâges de discussion.",
        "wlheader-enotif": "La notificacion per mèssageria èlèctronica est activâye.",
        "wlheader-showupdated": "Les pâges que sont étâyes changiêes dês voutra dèrriére visita sont montrâyes en '''grâs'''.",
+       "wlnote": "Vê-que {{PLURAL:$1|lo dèrriér changement fêt|los '''$1''' dèrriérs changements fêts}} pendent {{PLURAL:$2|l’hora passâye|les '''$2''' hores passâyes}}, dês $3 a $4.",
        "wlshowlast": "Montrar les $1 hores passâyes, los $2 jorns passâs ou ben $3",
        "watchlist-options": "Chouèx de la lista de siuvu",
        "watching": "Siuvu...",
        "duplicate-defaultsort": "'''Atencion :''' la cllâf de tri per dèfôt « $2 » ècllafe cela « $1 ».",
        "version": "Vèrsion",
        "version-extensions": "Èxtensions enstalâs",
+       "version-skins": "Habelyâjos",
        "version-specialpages": "Pâges spèciâles",
        "version-parserhooks": "Grèfons du parsor",
        "version-variables": "Variâbles",
        "version-antispam": "Prèvencion du spame",
-       "version-skins": "Habelyâjos",
        "version-other": "De totes sôrtes",
        "version-mediahandlers": "Maneyors de mèdia",
        "version-hooks": "Grèfons",
index 6bb0457..1bcd678 100644 (file)
        "talkpagelinktext": "Diskusjuun",
        "specialpage": "Spezial-sidj",
        "personaltools": "Min werktjüügen",
-       "postcomment": "Nei kirew",
        "articlepage": "Artiikel wise",
        "talk": "Diskusjuun",
        "views": "Uunsichten",
        "externaldberror": "Deer läit en fäägel bai jü äkstärn autentifisiiring for, unti dü möist din äkstärn brükerkonto äi aktualisiire.",
        "login": "Uunmelde",
        "nav-login-createaccount": "Melde di uun of skriiw di iin",
-       "loginprompt": "För't uunmeldin tu {{SITENAME}} skel bi dan browser cookies aktiwiaret wees.",
        "userlogin": "Melde di uun of skriiw di iin",
        "userloginnocreate": "Uunmelde",
        "logout": "Ufmelde",
        "searchprofile-advanced-tooltip": "Uun ööder nöömrümer schük",
        "search-result-size": "$1 ({{PLURAL:$2|1 wurd|$2 wurden}})",
        "search-result-category-size": "{{PLURAL:$1|1 sidj|$1 sidjen}} ({{PLURAL:$2|1 onerkategorii|$2 onerkategoriin}}, {{PLURAL:$3|1 datei|$3 datein}})",
-       "search-result-score": "Relewans: $1 %",
        "search-redirect": "(widjerfeerd faan „$1“)",
        "search-section": "(kirew $1)",
        "search-file-match": "(fünjen tekst)",
        "uploadwarning": "Wäärnang",
        "uploadwarning-text": "Feranre det datei-beskriiwang an ferschük det noch ans nei.",
        "savefile": "Datei seekre",
-       "uploadedimage": "hää \"[[$1]]\" huuchschüürd",
-       "overwroteimage": "hää en nei werjuun faan „[[$1]]“ huuchschüürd",
        "uploaddisabled": "Huuchschüüren as ei aktiwiaret",
        "copyuploaddisabled": "Huuchschüüren faan URLs as ei aktiwiaret.",
        "uploaddisabledtext": "Det huuchschüüren faan datein as ei aktiwiaret.",
        "watchlist-details": "Dü behäälst {{PLURAL:$1|1 sidj|$1 sidjen}} uun't uug, diarbi wurd diskuschuunsidjen ei mätääld.",
        "wlheader-enotif": "Di e-mail siinst as aktiif.",
        "wlheader-showupdated": "Nei feranert sidjen wurd '''fäät''' uunwiset.",
-       "wlnote2": "Diar stun a feranrangen faan a leetst {{PLURAL:$1|stünj|<strong>$1</strong> stünjen}}, üüb a stant faan $2, $3.",
+       "wlnote": "Diar {{PLURAL:$1|stäänt det leetst feranrang|stun a leetst '''$1''' feranrangen}} faan a leetst {{PLURAL:$2|stünj|'''$2''' stünjen}}. Stant: $3, klook $4.",
        "wlshowlast": "Wise a feranrangen faan leetst $1 stünjen, $2 daar of $3.",
        "watchlist-options": "Iinstelangen för't uunwisin",
        "watching": "Uun't uug behual ...",
index ff1c4e3..18b5c72 100644 (file)
        "talkpagelinktext": "discussion",
        "specialpage": "Pagjine speciâl",
        "personaltools": "Imprescj personâi",
-       "postcomment": "Gnove sezion",
        "articlepage": "Cjale la vôs",
        "talk": "Discussion",
        "views": "Visitis",
        "yourdomainname": "Il to domini",
        "login": "Jentre",
        "nav-login-createaccount": "Regjistriti o jentre",
-       "loginprompt": "Tu âs di vê abilitâts i cookies par jentrâ in {{SITENAME}}.",
        "userlogin": "Regjistriti o jentre",
        "userloginnocreate": "Jentre",
        "logout": "Jes",
        "searchprofile-advanced-tooltip": "Cîr tai spazis dai nons personalizâts",
        "search-result-size": "$1 ({{PLURAL:$2|une peraule|$2 peraulis}})",
        "search-result-category-size": "{{PLURAL:$1|1 membri|$1 membris}} ({{PLURAL:$2|1 sotcategorie|$2 sotcategoriis}}, {{PLURAL:$3|1 file|$3 files}})",
-       "search-result-score": "Rilevance: $1%",
        "search-redirect": "(re-indreçament $1)",
        "search-section": "(sezion $1)",
        "search-suggest": "Forsit tu cirivis: $1",
        "filetype-missing": "Il file nol à une estension (par esempli \".jpg\").",
        "file-exists-duplicate": "Chest file al è un duplicât {{PLURAL:$1|dal file |dai files ca sot:}}",
        "savefile": "Salve file",
-       "uploadedimage": "cjamât sù \"$1\"",
-       "overwroteimage": "al à cjamât une gnove version di «[[$1]]»",
        "uploaddisabled": "Nus displâs, par cumò no si pues cjamâ sù robe.",
        "uploaddisabledtext": "Lis cjamadis di files a son disativadis.",
        "sourcefilename": "Non dal file origjinâl:",
        "watchlist-details": "{{PLURAL:$1|E je $1 pagjine tignude|A son $1 pagjinis tignudis}} di voli, cence contâ lis pagjinis di discussion.",
        "wlheader-enotif": "Notifiche par pueste eletroniche ativade.",
        "wlheader-showupdated": "Lis pagjinis gambiadis de ultime volte che tu lis âs cjaladis a son mostradis in '''gruessut'''",
+       "wlnote": "Ca sot {{PLURAL:$1|al è il cambiament plui recent|a son i '''$1''' cambiaments plui recents}} {{PLURAL:$2|inte ultime ore|intes '''$2''' oris passadis}}.",
        "wlshowlast": "Mostre ultimis $1 oris $2 zornadis $3",
        "watchlist-options": "Opzions pe liste dai tignûts di voli",
        "watching": "Daûr a zontâ aes pagjinis tignudis di voli...",
index 0851cc8..9c23ae8 100644 (file)
        "talkpagelinktext": "Oerlis",
        "specialpage": "Bysûndere side",
        "personaltools": "Persoanlike ynstellings",
-       "postcomment": "Skriuw in opmerking",
        "articlepage": "Side lêze",
        "talk": "Oerlis",
        "views": "Aspekten/aksjes",
        "externaldberror": "Der is in fout by it oanmelden by de database of jo hawwe gjin tastimming om jo ekstern account by te wurkjen.",
        "login": "Oanmelde",
        "nav-login-createaccount": "Oanmelde",
-       "loginprompt": "Jo moatte 'cookies' oanstean hawwe om yn jo oan te melden by {{SITENAME}}.",
        "userlogin": "Oanmelde",
        "userloginnocreate": "Ynlogge",
        "logout": "Ofmelde",
        "searchprofile-everything-tooltip": "Alle ynhâld trochsykje (ynklusyf oerlissiden)",
        "searchprofile-advanced-tooltip": "Sykje yn oanjûne nammerûmten",
        "search-result-size": "$1 ({{PLURAL:$2|1 wurd|$2 wurden}})",
-       "search-result-score": "Relevante: $1%",
        "search-redirect": "(trochferwizing $1)",
        "search-section": "(seksje $1)",
        "search-suggest": "Bedoele jo: $1",
        "file-deleted-duplicate": "In bestân idintyk oan dit bestân ([[:$1]]) is foarhinne fuorthelle.\nRieplachtsje it fuorthel-logboek foar't jo fierder geane.",
        "uploadwarning": "Oanbied-warskôging",
        "savefile": "Lis triem fêst",
-       "uploadedimage": " \"[[$1]]\" oanbean",
-       "overwroteimage": "hat in nije ferzje fan \"[[$1]]\" tafoege",
        "uploaddisabled": "Sorry, op dizze tsjinner kin net oanbean wurde.",
        "uploaddisabledtext": "It oanbieden fan triemmen is útskeakele.",
        "php-uploaddisabledtext": "PHP-triemuploads binne útskeakele. Kontrolearje a.j.w. de triem_uploads-ynstelling.",
        "unwatchthispage": "Ferjit dizze side",
        "notanarticle": "Dit kin net folge wurde.",
        "watchlist-details": "Jo folchlist hat {{PLURAL:$1|$1 side|$1 siden}}, oerlissiden net meiteld.",
+       "wlnote": "Dit {{PLURAL:$1|is de lêste feroaring|binne de lêste '''$1''' feroarings}} yn de lêste {{PLURAL:$2|oer|'''$2''' oeren}}.",
        "wlshowlast": "Lit feroarings sjen fan de lêste $1 oeren $2 dagen $3",
        "watching": "Dwaande mei op'e folchlist te setten ...",
        "unwatching": "Dwaande mei fan'e folchlist ôf te heljen ...",
index 0fe4dfa..42bf7e9 100644 (file)
        "talkpagelinktext": "Plé",
        "specialpage": "Leathanach Speisialta",
        "personaltools": "Do chuid uirlisí",
-       "postcomment": "Mír nua",
        "articlepage": "Féach ar an alt",
        "talk": "Plé",
        "views": "Radhairc",
        "externaldberror": "Bhí earráid bhunachair sonraí ann maidir le fíordheimhniú seachtrach, nóThere was either an external authentication database error or you are not allowed to update your external account.",
        "login": "Logáil isteach",
        "nav-login-createaccount": "Logáil isteach",
-       "loginprompt": "Tá sé riachtanach fianáin a chur i ngníomh chun logáil isteach a dhéanamh ag {{SITENAME}}.",
        "userlogin": "Logáil isteach / cruthaigh cuntas",
        "userloginnocreate": "Logáil isteach",
        "logout": "Logáil amach",
        "fileexists-forbidden": "Tá comhad eile leis an ainm seo ann fós, agus ní féidie é a forscríobh.\nMá theastáilann uait do chomhad a uaslódáil fós, téigh ar ais agus úsáid ainm nua, le do thoil. [[File:$1|thumb|center|$1]]",
        "uploadwarning": "Rabhadh suaslódála",
        "savefile": "Sábháil comhad",
-       "uploadedimage": "uaslódáladh \"[[$1]]\"",
        "uploaddisabled": "Tá brón orainn, ní féidir aon rud a uaslódáil faoi láthair.",
        "uploaddisabledtext": "Tá cosc ar uaslódáil comhad.",
        "uploadvirus": "Tá víreas ann sa comhad seo! Eolas: $1",
        "watchlist-details": "Tá tú ag faire ar {{PLURAL:$1|leathanach amháin|$1 leathanaigh}}, gan leathanaigh phlé a chur san áireamh.",
        "wlheader-enotif": "Cumasaíodh fógraí riomhphoist.",
        "wlheader-showupdated": "Tá '''cló trom''' ar leathanaigh a athraíodh ón uair is deireanaí a d'fhéach tú orthu.",
+       "wlnote": "Is {{PLURAL:$1|é seo thíos an t-athrú deireanach|iad seo thíos na '''$1''' athruithe deireanacha}} {{PLURAL:$2|san uair deireanach|sna '''$2''' uaire deireanacha}}.",
        "wlshowlast": "Líon na n-uair is déanaí le taispeáint: $1. Líon na laethanta is déanaí le taispeáint: $2. Taispeáin $3.",
        "watchlist-options": "Roghanna don liosta faire",
        "watching": "Ag faire...",
index ba65dc6..eca10f7 100644 (file)
        "talkpagelinktext": "Konuşmaa",
        "specialpage": "Maasus Sayfa",
        "personaltools": "Personal instrumentlär",
-       "postcomment": "Yorum ekle",
        "articlepage": "Yazıya bak",
        "talk": "Dartışma",
        "views": "Görünüşler",
        "yourdomainname": "Domen adınız",
        "login": "Gir",
        "nav-login-createaccount": "Gir / esap yarat",
-       "loginprompt": "Bak: {{SITENAME}} saytında sessiya açmaa için tarayıcınızda läazım cookies aktivat olsun. <br />\nKullanıcı adınız '''var nicä içersin'''gagauzça nışan, boşluk . Savaşın kullanıcı adınıza e-mail adresi '''girmemää'''.",
        "userlogin": "Gir / esap yarat",
        "logout": "Sessiyanı kapat",
        "userlogout": "Oturmaa kapat",
        "upload": "Fayl ükle",
        "uploadbtn": "Fayl ükle",
        "uploadlogpage": "Fayl üklemäk jurnalları",
-       "uploadedimage": "Üklenen: \"[[$1]]\"",
        "listfiles": "Pätret listası",
        "file-anchor-link": "Fayl",
        "filehist": "Fayl istoriyası",
index b343117..5c67aa4 100644 (file)
        "externaldberror": "外部验证数据库出错,或倷更新伓正倷𠮶外部帐户。",
        "login": "登入",
        "nav-login-createaccount": "登入/新开只帐户",
-       "loginprompt": "要开到cookies才登入得正{{SITENAME}}。",
        "userlogin": "登入/新开只帐户",
        "userloginnocreate": "登入",
        "logout": "退出",
        "fileexists-shared-forbidden": "到共用档案库里度有嘞同名𠮶档案;请回头并换过只新𠮶名称来上传个只档案。[[File:$1|thumb|center|$1]]",
        "uploadwarning": "上传警告",
        "savefile": "保存盘案",
-       "uploadedimage": "上传正嘞\"[[$1]]\"",
-       "overwroteimage": "上传正嘞\"[[$1]]\"𠮶新版本",
        "uploaddisabled": "上传伓正",
        "uploaddisabledtext": "上传伓正文件到{{SITENAME}}。",
        "uploadscripted": "个只档案包到可能会误导网络浏览器错误解释𠮶 HTML 或脚本代码。",
        "watchlist-details": "$1只页面(伓算讨论页) 拖眏到哩",
        "wlheader-enotif": "启动嘞email通知功能。",
        "wlheader-showupdated": "上回倷眵𠮶页面改动𠮶部分用'''粗体'''显到",
+       "wlnote": "下底系最近'''$2'''钟头内𠮶最晏'''$1'''道修改:",
        "wlshowlast": "显示近来$1钟头$2日$3𠮶改动",
        "watchlist-options": "监视清单选项",
        "watching": "眏到...",
index e3f8bbb..8e2a350 100644 (file)
        "fileexists-shared-forbidden": "到共用檔案庫裡度有嘞同名嗰檔案;請回頭並換過隻新嗰名稱來上傳箇隻檔案。[[File:$1|thumb|center|$1]]",
        "uploadwarning": "上傳警告",
        "savefile": "保存檔案",
-       "uploadedimage": "上傳正哩\"[[$1]]\"",
-       "overwroteimage": "上傳正哩\"[[$1]]\"嗰新版本",
        "uploaddisabled": "上傳伓正",
        "uploaddisabledtext": "上傳伓正文件到{{SITENAME}}。",
        "uploadscripted": "箇隻檔案包到可能會誤導網絡瀏覽器錯誤解釋嗰 HTML 或腳本代碼。",
index ee29121..cd72433 100644 (file)
        "searchprofile-advanced-tooltip": "Lorg am broinn ainm-spàsan gnàthaichte",
        "search-result-size": "$1 ({{PLURAL:$2|$2 fhacal|$2 fhacal|$2 faclan|$2 facal}})",
        "search-result-category-size": "{{PLURAL:$1|$1 bhall|$1 bhall|$1 bhuill|$1 ball}} ({{PLURAL:$2|$2 fho-roinn-seòrsa|$2 fho-roinn-seòrsa|$2 fo-roinnean-seòrsa|$2 fo-roinn-seòrsa}}, {{PLURAL:$3|$3 fhaidhle|$3 fhaidhle|$3 faidhlichean|$3 faidhle}})",
-       "search-result-score": "Buntainneas: $1%",
        "search-redirect": "(ag ath-sheòladh $1)",
        "search-section": "(earrann $1)",
        "search-file-match": "{a' freagairt ri susbaint an fhaidhle)",
        "uploadwarning": "Rabhadh luchdaidh suas",
        "uploadwarning-text": "Atharraich tuairisgeul an fhaidhle gu h-ìosal 's feuch ris a-rithist.",
        "savefile": "Sàbhail faidhle",
-       "uploadedimage": "a luchdaich suas \"[[$1]]\"",
-       "overwroteimage": "luchdaich suas tionndadh ùr de \"[[$1]]\"",
        "uploaddisabled": "Tha an luchdadh suas à comas.",
        "copyuploaddisabled": "Tha an luchdadh suas o URL à comas.",
        "uploaddisabledtext": "Tha luchdadh suas fhaidhlichean à comas.",
        "watchlist-details": "Tha {{PLURAL:$1|$1 duilleag|$1 dhuilleag|$1 duilleagan|$1 duilleag}} air a' chlàr-fhaire agad, gun luaidh air na duilleagan deasbaireachd.",
        "wlheader-enotif": "Tha brathan-naidheachd air a' phost-d an comas.",
        "wlheader-showupdated": "Tha clò <strong>trom</strong> air duilleagan a chaidh atharrachadh on turas mu dheireadh a thadhail thu orra.",
-       "wlnote2": "Chì thu na h-atharraichean {{PLURAL:$1|san <strong>$1</strong> uair|san <strong>$1</strong> uair|sna <strong>$1</strong> uairean|san <strong>$1</strong> uair}} a thìde seo chaidh aig $3 air $2.",
+       "wlnote": "Seo {{PLURAL:$1|an $1 mhùthadh|$1 mhùthadh|na $1 mùthaidhean|$1 mùthadh}} mu dheireadh san {{PLURAL:$2|$2 uair a thìde|$2 uair a thìde|$2 uairean a thìde|$2 uair a thìde}} mu dheireadh, mar a bha e $3, $4.",
        "wlshowlast": "Seall na $1 uairean a thìde mu dheireadh $2 làithean mu dheireadh $3",
        "watchlist-options": "Roghainnean mo chlàir-faire",
        "watching": "'Ga chur air a' chlàr-fhaire...",
index 7c7f484..f489bd9 100644 (file)
        "searchprofile-advanced-tooltip": "Procurar nos espazos de nomes elixidos",
        "search-result-size": "$1 ({{PLURAL:$2|1 palabra|$2 palabras}})",
        "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membros}} ({{PLURAL:$2|1 subcategoría|$2 subcategorías}}, {{PLURAL:$3|1 ficheiro|$3 ficheiros}})",
-       "search-result-score": "Relevancia: $1%",
        "search-redirect": "(redirixido desde \"$1\")",
        "search-section": "(sección \"$1\")",
        "search-file-match": "(coincide co contido do ficheiro)",
index 7cc5f1b..8d7786e 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Deepak D'Souza",
                        "Isidore Dantas",
-                       "The Discoverer"
+                       "The Discoverer",
+                       "아라"
                ]
        },
        "underline-always": "Soddankal",
@@ -80,6 +81,7 @@
        "category-article-count": "{{PLURAL:$2|Hea vorgan fokot hi ek pan asa.|Hea vorgan {{PLURAL:$1|hi pan asa|him $1 panam asat}} beriz $2 panam modem.}}",
        "category-file-count": "{{PLURAL:$2|Hea vorgan fokot hi ek fail asa.|Hea vorgan {{PLURAL:$1|hi fail asa|heo $1 faili asat}}, beriz $2 faili modem.}}",
        "listingcontinuesabbrev": "chalu",
+       "index-category": "Suchi-potran zodlelim panam",
        "noindex-category": "Suchi-potran zoddunk-naslelim panam",
        "about": "Hea vixoiavoir",
        "article": "Vixoi sombondhi pan",
        "cancel": "Rod'd kor",
        "mytalk": "Bhasabhas",
        "navigation": "Dixa-niontronn",
+       "and": "&#32;ani",
        "qbfind": "Sod",
        "qbedit": "Bodol",
        "faq": "Choddxe vicharlole prosn",
-       "vector-action-addsection": "Vixoi zodd",
-       "vector-action-delete": "Kadd",
-       "vector-action-move": "Fuddem voch",
-       "vector-action-protect": "Rakh",
-       "vector-view-create": "Roch",
-       "vector-view-edit": "Sudar",
-       "vector-view-history": "Itihas polloi",
-       "vector-view-view": "Vach",
-       "vector-view-viewsource": "Mull polloi",
        "actions": "Karvaio",
        "namespaces": "Nanv-thollam",
        "variants": "Dusre",
        "history_short": "Itihas",
        "printableversion": "Chapp'pachi avruti",
        "permalink": "Togpi zodd",
+       "print": "Chap",
        "view": "Poloi",
        "edit": "Sudar",
        "create": "Roch",
        "remembermypassword": "Hea internet browseran mhojem sotrachem ugdas dovor (chodan chod $1 {{PLURAL:$1|disak|disank}})",
        "login": "Sotrromb kor",
        "nav-login-createaccount": "Sotrrombh kor / khato roch",
-       "loginprompt": "{{SITENAME}}, hea siticher sotrorombh korunktujea internet browseran ''cookies'' suru asunk zai.",
        "userlogin": "Sotrrombh kor / khatem roch",
        "logout": "Bhair podd",
        "userlogout": "Sotracho xevott",
        "gotaccount": "Tuje kodem khatem asa? $1.",
        "gotaccountlink": "Sotrorombh kor",
        "userlogin-resetlink": "Sotrorombh korpacheo bariksai visorlai?",
-       "mailmypassword": "Novem gupitutor email kor",
+       "mailmypassword": "Novem gupitutor",
        "loginlanguagelabel": "Bhas: $1",
        "bold_sample": "Datt mozkur",
        "bold_tip": "Datt mozkur",
        "viewpagelogs": "Hea panachim sotram polloi",
        "currentrev-asof": "$1, hachi halinchi uzollnni",
        "revisionasof": "$1 hachi uzollnni",
-       "revision-info": "$2 hannem $1, hachi uzollnni",
+       "revision-info": "$1 porian, $2 hannem kelli uzollnni",
        "previousrevision": "← Adli uzollnni",
        "nextrevision": "Novi uzolnni →",
        "currentrevisionlink": "Sogleanvon novi uzollnni",
        "shown-title": "Dor panar {{PLURAL:$1|porinam|porinam}} dakhoi",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) poloi",
        "searchmenu-exists": "'''Hea Wikicher \"[[:$1]]\" nanvanche pan asa.'''",
-       "searchmenu-new": "'''\"[[:$1]]\" hem pan hea vikint roch!'''",
+       "searchmenu-new": "<strong>\"[[:$1]]\" hem pan hea vikint roch!<strong> {{PLURAL:$2|0=|Tujea sodan mellelem panui polloi.|Tujea sodan mellelem panamui polloi.}}",
        "searchprofile-articles": "Mozkurachim panam",
-       "searchprofile-project": "Adar ani Project panam",
        "searchprofile-images": "Bhovmadhiom",
        "searchprofile-everything": "Sogllem",
        "searchprofile-advanced": "Sodpache poryay",
        "searchprofile-articles-tooltip": "$1 hantunt sod",
-       "searchprofile-project-tooltip": "$1 hantunt sod",
        "searchprofile-images-tooltip": "Faili sod",
        "searchprofile-everything-tooltip": "Akhea sitin sod (Bhasabhas panant'ui)",
        "searchprofile-advanced-tooltip": "chalu nanvthollancher sod",
        "recentchanges-label-minor": "Ho ek dhaktto sudar",
        "recentchanges-label-bot": "Hem bodlop eka robotan kel'lem",
        "recentchanges-label-unpatrolled": "Hem sudharop azun topasunk nam",
-       "rcnotefrom": "Sokoil '''$2''' savn zalelim bodolpam dileant ( '''$1'''meren dakhoileant).",
-       "rclistfrom": "$1 savn suru zatelim novim bodolpam dakhoi",
+       "rcnotefrom": "Sokoil <strong>$2<strong> savn zalelim bodolpam dileant ( <strong>$1<strong> meren dakhoileant).",
+       "rclistfrom": "$3 $2 savn suru zatelim novim bodolpam dakhoi",
        "rcshowhideminor": "$1 dhaktteo sudarnneo",
        "rcshowhidebots": "$1 robot",
-       "rcshowhideliu": "$1 sotrromb kelele vapuddpi",
+       "rcshowhideliu": "$1 nond zalele vapuddpi",
        "rcshowhideanons": "$1 nanv-naslelim vapurpi",
        "rcshowhidepatr": "$1 topaslele sudharop",
        "rcshowhidemine": "Mhojem sudarop $1",
        "upload": "Fail upload kor",
        "uploadlogpage": "Uploadachem sotr",
        "filedesc": "Sar",
-       "uploadedimage": " \"[[$1]]\" upload zalem",
        "watchthisupload": "Hea faylar dixtt dovor",
        "license": "Porvangi",
        "license-header": "Porvangi",
        "speciallogtitlelabel": "Vishoi vo vapurpi:",
        "log": "Sotram",
        "allpages": "Sogllim panam",
-       "alphaindexline": "$1 savn $2",
        "nextpage": "Mukklem pan ($1)",
        "prevpage": "Ad'dlem pan ($1)",
        "allpagesfrom": "Hanga thavn suru zatelea panank dakhoi:",
        "watch": "Sadur rav",
        "watchthispage": "Hea panar dixtt dovor",
        "unwatch": "Nodor kadd",
-       "watchlist-details": "Tujea sadurvollerint {{PLURAL:$1|$1 pan asa|$1 panam asat}}, ulovpachim panam mezonastanam.",
+       "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",
        "watchlist-options": "Sadurvollericheo poryay",
index 36237d0..01dc517 100644 (file)
        "talkpagelinktext": "Διαλέγεσθαι",
        "specialpage": "Εἰδικὴ δέλτος",
        "personaltools": "Ἴδια ἐργαλεῖα",
-       "postcomment": "Νέον τμῆμα",
        "articlepage": "Χρήματος δέλτον ὁρᾶν",
        "talk": "Διάλεξις",
        "views": "Προβολαί",
        "externaldberror": "Συνέβη εἴτε σφάλμα τι πιστοποιήσεως τῆς βάσεως δεδομένων εἴτε οὐκ ἔξεστί σοι ἐνημεροῦν τὸν ἐξωτερικὸν λογισμόν σου.",
        "login": "Συνδεῖσθαι",
        "nav-login-createaccount": "Συνδεῖσθαι/λογισμὸν ποιεῖν",
-       "loginprompt": "Δεῖ ἐνεργὰ τὰ HTTP-πύσματα εἶναι πρὸ τοῦ συνδεῖσθαι τῷ {{SITENAME}}.",
        "userlogin": "Συνδεῖσθαι/λογισμὸν ποιεῖν",
        "userloginnocreate": "Συνδεῖσθαι",
        "logout": "Ἐξέρχεσθαι",
        "searchprofile-everything-tooltip": "Πανταχοῖ (καὶ τὰς δέλτους διαλέξεως) ζητεῖν.",
        "searchprofile-advanced-tooltip": "Ζητεῖν εἰς συνήθη ὀνοματεῖα",
        "search-result-size": "$1 ({{PLURAL:$2|1 λέξις|$2 λέξεις}})",
-       "search-result-score": "Σχετικότης: $1%",
        "search-redirect": "(ἀναδιευθύνειν $1)",
        "search-section": "(τμῆμα $1)",
        "search-suggest": "Συνίης: $1",
        "file-exists-duplicate": "Τὸ ἀρχεῖον ἐστὶ διπλότυπον τοῦ/τῶν ἑξῆς {{PLURAL:$1|ἀρχείου|ἀρχείων}}:",
        "uploadwarning": "Προμήνυσις ἐπιφορτίσεως",
        "savefile": "Σῴζειν ἀρχεῖον",
-       "uploadedimage": "ἐπιπεφορτισμένον \"[[$1]]\"",
-       "overwroteimage": "νέα ἔκδοσις τῆς \"[[$1]]\" ἐπιπεφορτισμένη",
        "uploaddisabled": "Μὴ ἐνεργαὶ αἱ ἐπιφορτίσεις",
        "uploaddisabledtext": "Ἐπιφορτίσεις ἀρχείων μὴ ἐνεργαὶ.",
        "php-uploaddisabledtext": "Αἱ ἐπιφορτώσεις ἀρχείων εἰσὶν ἀνενεργοὶ ἐν τῇ PHP.\nἜλεγξον τὴν ῥύθμισιν file_uploads.",
        "notvisiblerev": "Ἀναθεώρησις διαγεγραμμένη",
        "watchlist-details": "{{PLURAL:$1|$1 δέλτος|$1 δέλτοι}} ἐφορωμέναι, ἄνευ τῶν δέλτων διαλέξεως περιλαμβανομένων.",
        "wlheader-enotif": "Σύστημα εἰδήσεως μέσῳ ἠλ-ἐπιστολῶν ἐνεργόν.",
+       "wlnote": "Κατωτέρω {{PLURAL:$1|ἐστὶν ἡ ὑστάτη μεταβολὴ|εἰσὶν αἱ ὑστάται  '''$1'''  μεταβολαὶ}} ἐν {{PLURAL:$2|τῇ ὑστάτῃ μίᾳ ὥρᾳ|ταῖς ὑστάταις '''$2''' ὥραις}}.",
        "wlshowlast": "Ἐμφάνισις τῶν τελευταίων $1 ὡρῶν $2 ἡμερῶν $3",
        "watchlist-options": "Ἐπιλογαὶ ἐφοροδιαλογῆς",
        "watching": "Ἐφορῶν...",
index 579df7a..97e5b09 100644 (file)
        "searchprofile-advanced-tooltip": "Suech in wytere Namensryym",
        "search-result-size": "$1 ({{PLURAL:$2|1 Wort|$2 Werter}})",
        "search-result-category-size": "{{PLURAL:$1|1 Kategorii|$1 Kategorie}} ({{PLURAL:$2|1 Unterkategorii|$2 Unterkategorie}}, {{PLURAL:$3|1 Datei|$3 Dateie}})",
-       "search-result-score": "Relevanz: $1 %",
        "search-redirect": "(Wyterleitig $1)",
        "search-section": "(Abschnitt $1)",
        "search-suggest": "Hesch „$1“ gmeint?",
        "uploadwarning": "Warnig",
        "uploadwarning-text": "Bitte tue unte d Dateibsschryybig ändere un versuech s nomol.",
        "savefile": "Datei spychere",
-       "uploadedimage": "het „[[$1]]“ ufeglade",
-       "overwroteimage": "het e neiji Version vu „[[$1]]“ uffeglade",
        "uploaddisabled": "Uffelade deaktiviert",
        "copyuploaddisabled": "S Uffelade iber URL isch abschalte wore.",
        "uploaddisabledtext": "S Uffelade vu Dateie isch deaktiviert.",
        "watchlist-details": "{{PLURAL:$1|1 Syte wird|$1 Sytene wärde}} beobachtet (Diskussionssyte nid zelt, aber ou beobachtet).",
        "wlheader-enotif": "Dr E-Mail-Benochrichtigungsdienscht isch aktiviert.",
        "wlheader-showupdated": "Syte mit Anderige, wu no nit aagluegt sin, sin '''fett''' dargstellt.",
+       "wlnote": "Do {{PLURAL:$1|chunnt di letscht Änderig|chemme di letschte '''$1''' Änderige}} vu dr letschte {{PLURAL:$2|Stund|'''$2''' Stunde}}. Stand: $3, $4 Uhr.",
        "wlshowlast": "Zeig di letschte $1 Stunde $2 Tage $3",
        "watchlist-options": "Aazeigoptione",
        "watching": "Am beobachte …",
index 5a9ffe2..26fa4cb 100644 (file)
        "pageinfo-watchers": "પાના નીરીક્ષકોની સંખ્યા",
        "pageinfo-redirects-name": "આ પાનાં પર દિશાનિર્દેશનોની સંખ્યા",
        "pageinfo-subpages-name": "આ પાનાંનું ઉપપાનું",
-       "pageinfo-firstuser": "પાનà«\81àª\82 સર્જક",
+       "pageinfo-firstuser": "પà«\83ષà«\8dઠ સર્જક",
        "pageinfo-firsttime": "પાનાં બનાવવાની તારીખ",
        "pageinfo-lastuser": "છેલ્લો ફેરફાર કરનાર",
        "pageinfo-lasttime": "છેલ્લા ફેરફારની તારીખ",
index 23cbf79..ebce018 100644 (file)
        "talkpagelinktext": "Resoonaght",
        "specialpage": "Duillag er lheh",
        "personaltools": "Greienyn persoonagh",
-       "postcomment": "Meer noa",
        "articlepage": "Jeeagh er y duillag chummal",
        "talk": "Resoonaght",
        "views": "Reayrtyn",
        "remembermypassword": "Cooinnee m'ockle arrey (rish wheesh as $1 {{PLURAL:$1|laa|laa|laa|laaghyn}})",
        "login": "Log stiagh",
        "nav-login-createaccount": "Log stiagh / croo coontys",
-       "loginprompt": "Shegin dhyt cur pooar da minniagyn dy loggal stiagh ayns {{SITENAME}}.",
        "userlogin": "Log stiagh / croo coontys",
        "userloginnocreate": "Log stiagh",
        "logout": "Log magh",
        "searchprofile-images-tooltip": "Ronsee coadanyn",
        "searchprofile-everything-tooltip": "Ronsee dagh red (goaill stiagh duillagyn resoonaght)",
        "search-result-size": "$1 ({{PLURAL:$2|1 fockle|$2 'ockle|$2 'ockle|$2 focklyn}})",
-       "search-result-score": "Bentynys: $1%",
        "search-redirect": "(aa-enmyssit ass $1)",
        "search-section": "(rheynn $1)",
        "search-suggest": "R'ou çheet er: $1",
        "filesource": "Bun:",
        "badfilename": "T'ennym y choadan aa-enmyssit myr \"$1\".",
        "savefile": "Sauail y coadan",
-       "uploadedimage": "\"[[$1]]\" laadit neese",
        "uploadvirus": "Ta veerys 'sy choadan! Mynphoyntyn: $1",
        "watchthisupload": "Freill arrey er y choadan shoh",
        "upload-file-error": "Marranys ynveanagh",
index 3f4f994..76e5945 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Mladanali"
+                       "Mladanali",
+                       "아라"
                ]
        },
        "tog-underline": "A shaya zaruruwa",
@@ -14,7 +15,6 @@
        "tog-showtoolbar": "A nuna sandar kayan aiki ta gyarawa (ana buƙatar JavaScript)",
        "tog-editondblclick": "A gyara shafuna da dabar-kiliki (ana buƙatar JavaScript)",
        "tog-editsectiononrightclick": "A lamunta gyara shashe da kilikin dama a kan kanun shashe (ana buƙatar JavaScript)",
-       "tog-rememberpassword": "A adana bayanan loginkina a wannan kwamfyuta (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "tog-watchcreations": "A daɗa shafunan da na ƙirƙira a cikin jerina na kan ido",
        "tog-watchdefault": "A daɗa shafunan da na gyara a cikin jerina na kan ido",
        "tog-watchmoves": "A daɗa shafunan da na gusar a cikin jerina na kan ido",
        "navigation": "Shawagi",
        "qbfind": "Nemo",
        "qbedit": "Gyarawa",
-       "vector-action-delete": "Soke",
-       "vector-action-move": "Gusarwa",
-       "vector-action-protect": "A kare",
-       "vector-view-create": "Ƙirƙira",
        "errorpagetitle": "Tangarɗa",
        "returnto": "Koma $1",
        "tagline": "Daga {{SITENAME}}",
        "searchall": "duka",
        "powersearch-legend": "Sahihin nema",
        "powersearch-ns": "Binciki sararen sunaye:",
-       "powersearch-redir": "Nuna turawa gaba",
        "powersearch-toggleall": "Duka",
        "preferences": "Saituttuka",
        "mypreferences": "Saituttukana",
        "recentchanges": "Sauye-sauyen baya-bayan nan",
        "recentchanges-legend": "Zaɓi na sauye-sauyen baya-bayan nan",
        "recentchanges-feed-description": "Bi sawun sauye-sauyen ƙarshe na wikin da ke cikin wannan kwarare",
-       "rclistfrom": "Nuna sabbin sauye-sauye tun daga $1",
+       "rclistfrom": "Nuna sabbin sauye-sauye tun daga $3 $2",
        "rcshowhideminor": "$1 ƙananen sauye-sauye",
        "rcshowhidebots": "Rabuwat $1",
        "rcshowhideliu": "$1 Ma'aikata logaggi",
        "uploadlogpage": "Rajistan girke fayiloli",
        "filedesc": "Taƙaici",
        "fileuploadsummary": "Taƙaici:",
-       "uploadedimage": "an girke \"[[$1]]\"",
        "filehist": "Tarihin fayil",
        "filehist-help": "ku Latsa rana/lokaci ku ga fayil yadda yake a wannan lokaci",
        "filehist-deleteone": "soke",
        "booksources-go": "Mu je",
        "log": "Rajistoci ayyuka",
        "allpages": "Duka shafuna",
-       "alphaindexline": "$1 zuwa $2",
        "prevpage": "Shafi na baya ($1)",
        "allpagesfrom": "Nuna shafuna farawa daga:",
        "allpagesto": "Nuna shafuna har:",
index b781900..cb43f56 100644 (file)
        "fileexists-shared-forbidden": "在共享文件庫中既存在同名文件。\n係話汝仍然想愛上載其嘅話,請返回並用一隻新名來上傳邇隻文件。[[File:$1|thumb|center|$1]]",
        "uploadwarning": "上傳警告",
        "savefile": "保存文件",
-       "uploadedimage": "已上傳“[[$1]]”",
        "uploaddisabled": "上傳己停用。",
        "uploaddisabledtext": "Tóng-on song-chhòn chhai chhṳ́ miong-chham put hí-khó yung.",
        "php-uploaddisabledtext": "PHP文件上傳已經停用。請檢查file_uploads設定。",
index bfba9bb..5532175 100644 (file)
        "talkpagelinktext": "Walaʻau",
        "specialpage": "‘Ao‘ao kūikawā",
        "personaltools": "Hāmeʻa ponoʻī",
-       "postcomment": "Māhele hou",
        "articlepage": "Nānā i ka ʻaoʻao mealoko",
        "talk": "walaʻau",
        "views": "Nānaina",
        "copyrightpage": "{{ns:project}}:Kūleana kope",
        "currentevents": "Nūhou",
        "currentevents-url": "Project:Nūhou",
-       "disclaimers": "Nā Akahele",
+       "disclaimers": "Akahana",
        "disclaimerpage": "Project:Akahele Laulaha",
        "edithelp": "Kōkua ho‘ololi",
        "mainpage": "Papa Kinohi",
        "hidetoc": "hoʻohūnā",
        "collapsible-collapse": "Hoʻoliʻi",
        "collapsible-expand": "Hoʻākea",
+       "confirmable-confirm": "He ʻoiaʻiʻo nō?",
+       "confirmable-yes": "ʻAe",
+       "confirmable-no": "ʻAʻole",
        "thisisdeleted": "Nānā ai‘ole hō‘āla iā $1?",
        "viewdeleted": "Nānā iā $1?",
        "restorelink": "{{PLURAL:$1|kekahi loli holoi|$1 mau loli holoi}}",
        "cascadeprotected": "Ho‘omalu ‘ia kēia ‘ao‘ao mai e ho‘opololei ana, no ka mea, hoʻokomo pū ‘ia ‘oia ma aia {{PLURAL:$1|‘ao‘ao|nā ‘ao‘ao}} i lalo, ho‘omalu ‘ia me ka \"e wailele ana\" koho:\n$2",
        "ns-specialprotected": "‘A‘ole hiki ke ho‘ololi i nā ‘ao‘ao kūikawā",
        "exception-nologin": "ʻE‘e ʻole",
+       "exception-nologin-text": "E ʻoluʻolu e ʻeʻe no ke komo ʻana i kēia ʻaoʻao a i ʻole ka ʻae no kēia hana.",
+       "exception-nologin-text-manual": "E ʻoluʻolu, e $1 no ke komo ʻana i kēia ʻaoʻao a i ʻole ka ʻae no kēia hana.",
        "welcomeuser": "Welina mai e $1!",
        "yourname": "Inoa mea ho'ohana:",
        "userlogin-yourname": "Inoa mea hoʻohana",
        "userlogin-remembermypassword": "Hoʻomanaʻo iaʻu",
        "login": "ʻEʻe",
        "nav-login-createaccount": "ʻEʻe / Kāinoa",
-       "loginprompt": "Pono ʻoe e hoʻā i nā makana no ka ʻeʻe ʻana iā {{SITENAME}}.",
        "userlogin": "ʻEʻe / Kāinoa",
        "userloginnocreate": "ʻEʻe",
        "logout": "Haʻalele",
        "pt-createaccount": "Kāinoa",
        "pt-userlogout": "Haʻalele",
        "changepassword": "E hoʻololi i ka ʻōlelo hūnā",
+       "resetpass_header": "Hoʻololi i ka ʻōlelo hūnā moʻokāki",
        "oldpassword": "ʻŌlelo hūnā kahiko:",
        "newpassword": "ʻŌlelo hūnā hou:",
        "retypenew": "E kikokiko hou i ka ʻōlelo hūnā hou:",
        "resetpass_submit": "Kau i ka ʻōlelo hūnā a ʻeʻe",
        "changepassword-success": "Ua hoʻololi ‘ia kāu hua‘ōlelo huna!",
+       "changepassword-throttled": "Nui ʻino ka hana ʻeʻe ʻana.\nE kali no $1 ma mua o ka hana hou ʻana ke ʻoluʻolu.",
+       "resetpass_forbidden": "ʻAʻole hiki ke hoʻololi i nā ʻōlelo hūnā",
+       "resetpass-no-info": "Pono ʻoe e ʻeʻe no ke komo pono ʻana o kēia ʻaoʻao.",
        "resetpass-submit-loggedin": "Hoʻololi i ka ʻōlelo hūnā",
        "resetpass-submit-cancel": "Hoʻōki",
        "resetpass-temp-password": "ʻŌlelo hūnā kūikawā:",
+       "resetpass-expired": "Ua pau kāu ʻōlelo hūnā. E ʻoluʻolu, e loaʻa kahi ʻōlelo hūnā hou no ka ʻeʻe ʻana.",
        "passwordreset": "Kāinoa hou i ka ʻōlelo hūnā",
        "passwordreset-legend": "Kāinoa hou i ka ʻōlelo hūnā",
        "passwordreset-username": "Inoa mea ho'ohana:",
        "passwordreset-email": "Wahinoho lekauila:",
+       "changeemail": "Hoʻololi i ka wahinoho lekauila",
+       "changeemail-header": "Hoʻololi i ka wahinoho lekauila moʻokāki",
        "changeemail-oldemail": "Wahinoho lekauila hananei:",
        "changeemail-newemail": "Wahinoho lekauila hou:",
        "changeemail-none": "(ʻaʻohe)",
        "showpreview": "E hō'ike i ka nāmua",
        "showdiff": "E hō'ike i nā loli",
        "anoneditwarning": "<strong>E akahele:</strong> ʻAʻole ʻoe ʻeʻe nei.\nE hoʻopaʻa ʻia ana kāu IP ma ko kēia ʻaoʻao mōʻaukala hoʻololi.",
+       "missingcommenttext": "E kikokiko i kekahi kaumanaʻo i lalo, ke ʻoluʻolu.",
        "summary-preview": "Nāmua hōʻuluʻulu manaʻo:",
        "blockedtitle": "Ua pale ‘ia ka mea ho‘ohana",
        "blockednoreason": "‘a‘ohe kumu",
+       "whitelistedittext": "E ʻoluʻolu, e $1 no ka hoʻololi ʻaoʻao ʻana.",
        "loginreqtitle": "Noi i ka ʻeʻe ʻana",
        "loginreqlink": "ʻeʻe",
        "accmailtitle": "Ua ho‘ouna ‘ia ka ‘ōlelo hūnā",
        "anontalkpagetext": "----\n<em>ʻO kēia ka ʻaoʻao kūkākūkā no kekahi mea ho‘ohana me ka inoa ʻole.</em>\nNo laila, pono mākou e ho‘ohana i ka IP no ka hōʻoia ʻana iā ia a hiki i kekahi mau mea hoʻohana ke hoʻokaʻana i kēia  IP.\nInā he mea ho‘ohana inoa ʻole ʻoe a loaʻa kekahi mau manaʻo nāuʻole, e ʻoluʻolu [[Special:UserLogin/signup|e kāinoa]] a i ʻole [[Special:UserLogin|e ʻeʻe]].''",
        "noarticletext": "ʻAʻohe kikokikona a kēia ʻaoʻao.\nHiki iā ʻoe ke [[Special:Search/{{PAGENAME}}|huli no kēia inoa ʻaoʻao]] i nā ʻaoʻao ʻē aʻe, <span class=\"plainlinks\">[{{fullurl:SpecialLog|page={{FULLPAGENAMEE}}}} huli i nā moʻolelo pili], a i ʻole [{{fullurl:{{FULLPAGENAME}}|action=edit}} hoʻololi i kēia ʻaoʻao]</span>.",
        "noarticletext-nopermission": "ʻAʻohe kikokikona a kēia ʻaoʻao.\nHiki iā ʻoe ke [[Special:Search/{{PAGENAME}}|huli no kēia inoa ʻaoʻao]] i nā ʻaoʻao ʻē aʻe aiʻole <span class=\"plainlinks\">[{{fullurl:SpecialLog|page={{FULLPAGENAMEE}}}} huli i nā moʻolelo pili]</span>, akā hiki ʻole iā ʻoe ke hoʻololi i kēia ʻaoʻao.",
+       "userpage-userdoesnotexist-view": "ʻAʻole kāinoa ʻia ka moʻokāki mea hoʻohana ʻo \"$1\".",
        "updated": "(Hoʻopuka hou ʻia)",
        "note": "<strong>E noka:</strong>",
        "previewnote": "<strong>ʻO kēia ka nāmua wale nō.</strong>\n‘A‘ole mālama ‘ia nā ho‘ololi!",
        "protectedpagewarning": "<strong>E akahele:  Ua hoʻomalu ‘ia kēia ‘ao‘ao, pēlā, hiki i nā \"kahu\" ke ho‘ololi wale nō.</strong>\nAia nā loli hanalohi i lalo no ka ʻikena:",
        "templatesused": "{{PLURAL:$1|anakuhi|mau anakuhi}} e hana ʻia ma kēia ʻaoʻao:",
        "templatesusedpreview": "Hoʻohana ʻia kēia {{PLURAL:$1|anakuhi|mau anakuhi}} i kēia nāmua:",
+       "templatesusedsection": "{{PLURAL:$1|Ka anakuhi|Nā anakuhi}} e hana ʻia i kēia mahele:",
        "template-protected": "(ho‘omalu ‘ia)",
        "template-semiprotected": "(hapa-ho‘omalu ‘ia)",
        "hiddencategories": "ʻO kēia ʻaoʻao he lālā o {{PLURAL:$1|1 mahele hūnā|$1 mau māhele hūnā}}:",
        "recreate-moveddeleted-warn": "<strong>E akahele: Ke haku nei ʻoe i kekahi ʻaoʻao i holoi ʻia.</strong>\n\nPono ʻoe e noʻonoʻo e pili ana ka pono o ka hoʻomau ʻana o ka hoʻololi ʻana o kēia ʻaoʻao.\nAia ka moʻolelo holoi a hoʻoneʻe no kēia ʻaoʻao ma ʻaneʻi:",
        "moveddeleted-notice": "Ua holoi ʻia kēia ʻaoʻao.\nHoʻolako ʻia ka moʻolelo holoi a hoʻoneʻe no kēia ʻaoʻao i lalo no ke kūmole.",
        "log-fulllog": "Nānā i ka moʻolelo piha",
+       "postedit-confirmation-created": "Ua haku ʻia ka ʻaoʻao.",
        "postedit-confirmation-saved": "Ua mālama ʻia kāu hoʻololi",
        "defaultmessagetext": "Kikokikona pūlono pa‘amau",
        "content-model-wikitext": "kikokikonawiki",
        "content-model-javascript": "IawaSikulipa",
+       "content-model-css": "CSS",
        "post-expand-template-inclusion-warning": "<strong>E akahele:</strong> Hoʻokela ʻia ka palena nui o ke anakuhi.\nHoʻohui ʻole i kekahi mau anakuhi.",
        "post-expand-template-inclusion-category": "Nā ʻaoʻao me nā anakuhi e hoʻokela i ka palenanui",
        "post-expand-template-argument-warning": "<strong>E akahele:</strong> Aia ma kēia ʻaoʻao i kekahi a ʻoi pilikia anakuhi e loaʻa i kekahi nui hoʻonui nunui loa.\nUa waiho ʻia kēia mau pilikia.",
        "history-feed-title": "Mōʻaukala kāmua",
        "history-feed-description": "Mōʻaukala kāmua no kēia ʻaoʻao ma ka wiki",
        "history-feed-item-nocomment": "$1 ma $3 ma ka hola $4",
+       "rev-deleted-comment": "wehe ʻia ka hōʻuluʻulu manaʻo hoʻololi)",
+       "rev-deleted-user": "(wehe ʻia ka inoa mea hoʻohana)",
        "rev-delundel": "hoʻololi ka nānā ʻana",
        "rev-showdeleted": "hōʻike",
        "revisiondelete": "Holoi/holoi ʻole i nā kāmua",
        "revdelete-reasonotherlist": "Nā kumu ʻē aʻe",
        "revdelete-edit-reasonlist": "Hoʻololi i nā kumu holoi",
        "revdelete-offender": "Mea kākau kāmua:",
+       "mergehistory": "Hoʻokuʻi pū i nā mōʻaukala ʻaoʻao",
        "mergehistory-from": "ʻAoʻao kūmole:",
        "mergehistory-into": "ʻAoʻao helewahi:",
        "mergehistory-reason": "Kumu:",
+       "mergelog": "Moʻolelo hoʻokuʻi pū",
        "revertmerge": "Hoʻokuʻipū ʻole",
        "history-title": "Mōʻaukala kāmua o \"$1\"",
        "lineno": "Laina $1:",
        "search-external": "Huli kūwaho",
        "preferences": "Kaʻu makemake",
        "mypreferences": "Ka‘u makemake",
+       "prefs-edits": "Helu o nā hoʻololi:",
+       "prefsnologintext2": "E ʻeʻe no ka hoʻololi ʻana o kāu makemake, ke ʻoluʻolu.",
        "prefs-skin": "ʻIli",
        "skin-preview": "Nāmua",
        "datedefault": "ʻAʻohe makemake",
        "prefs-namespaces": "Lewainoa",
        "default": "paʻamau",
        "prefs-files": "Waihona",
+       "prefs-emailconfirm-label": "Hōʻoia lekauila:",
        "youremail": "Lekauila:",
        "username": "{{GENDER:$1|Inoa mea hoʻohana}}:",
        "prefs-memberingroups": "{{GENDER:$2|He lālā}} o {{PLURAL:$1|hui|mau hui}}:",
        "prefs-diffs": "ʻOkoʻa",
        "prefs-help-prefershttps": "E hana ana kēia makemake i ka ʻeʻe hou ana.",
        "userrights": "Ho‘oponopono ‘ana o nā kuleana",
+       "userrights-user-editname": "E kikokiko i kekahi inoa mea hoʻohana:",
+       "editusergroup": "Hoʻololi i nā hui mea hoʻohana",
+       "userrights-editusergroup": "Hoʻololi i nā hui mea hoʻohana",
+       "saveusergroups": "Mālama i nā hui mea hoʻohana",
        "userrights-groupsmember": "He lālā o:",
        "userrights-reason": "Kumu:",
        "group": "Hui:",
        "right-bigdelete": "Holoi i nā ʻaoʻao me he mōʻaukala nui",
        "right-browsearchive": "Huli i nā ʻaoʻao holoi",
        "right-undelete": "Holoi ʻole i kekahi ʻaoʻao",
+       "right-suppressionlog": "Nānā i nā moʻolelo pilikino",
        "right-block": "Pale i nā mea hoʻohana ʻē aʻe mai ka hoʻololi ʻana",
        "right-blockemail": "Pale i nā mea hoʻohana ʻē aʻe mai ka lekauila ʻana",
        "right-hideuser": "Pale i ka inoa mea hoʻohana, no laila ʻaʻole hōʻike i ka lehulehu",
        "action-createpage": "haku ʻaoʻao",
        "action-createtalk": "haku ʻaoʻao kūkākūkā",
        "action-createaccount": "kāinoa i kēia moʻokāki mea hoʻohana",
+       "action-move": "hoʻoneʻe i kēia ʻaoʻao",
+       "action-move-subpages": "hoʻoneʻe i kēia ʻaoʻao a me nā ʻaoʻao kūloko hoʻi.",
+       "action-movefile": "hoʻoneʻe i kēia waihona",
+       "action-upload": "hoʻouka i kēia waihona",
+       "action-delete": "holoi i kēia ʻaoʻao",
+       "action-sendemail": "lekauila",
        "nchanges": "$1 {{PLURAL:$1|loli|mau loli}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|mai kāu kipana aku nei}}",
        "enhancedrc-history": "mōʻaukala",
        "filesource": "Kumu:",
        "uploadwarning": "Akahele hoʻouka",
        "savefile": "Waihona mālama",
-       "uploadedimage": "ua hoʻouka iā \"[[$1]]\"",
        "upload-source": "Waihona kūmole",
        "sourcefilename": "Inoa waihona kūmole:",
        "sourceurl": "URL kūmole:",
        "watchlisttools-raw": "Hoʻololi i ka papakiaʻi maka",
        "duplicate-defaultsort": "<strong>E akahele:</strong> Mauʻaʻe ke kī kaʻalike paʻamau \"$2\" i ke kī kaʻalike paʻamau \"$1\" mai ka wā mua.",
        "version-specialpages": "Nā ‘Ao‘ao kūikawā",
-       "version-poweredby-translators": "Mea unuhi translatewiki.net",
+       "version-poweredby-translators": "nā mea unuhi ma translatewiki.net",
        "version-software-version": "Mana",
        "redirect": "Kiahou e ka waihona, ka mea hoʻohana, ka ʻaoʻao aiʻole ka ID loihape",
        "redirect-legend": "Kiahou i kekahi waihona aiʻole kekahi ʻaoʻao",
index 695e3c8..9bad958 100644 (file)
@@ -43,7 +43,7 @@
        "tog-watchdefault": "מעקב אחרי דפים וקבצים שערכתי",
        "tog-watchmoves": "מעקב אחרי דפים וקבצים שהעברתי",
        "tog-watchdeletion": "מעקב אחרי דפים וקבצים שמחקתי",
-       "tog-watchrollback": "×\9eעק×\91 ×\90×\97ר×\99 ×\93פ×\99×\9d ×©×©×\97×\96רת×\99",
+       "tog-watchrollback": "×\9eעק×\91 ×\90×\97ר×\99 ×\93פ×\99×\9d ×©×\91×\94×\9d ×\91×\99צעת×\99 ×©×\97×\96×\95ר ×\9e×\94×\99ר",
        "tog-minordefault": "הגדרת כל פעולת עריכה כמשנית אם לא צוין אחרת",
        "tog-previewontop": "הצגת תצוגה מקדימה לפני תיבת העריכה",
        "tog-previewonfirst": "הצגת תצוגה מקדימה בעריכה ראשונה",
        "prefs-help-gender": "אין חובה למלא העדפה זו.\nהמערכת משתמשת במידע זה כדי לפנות אליך/אלייך ולציין את שם המשתמש שלך במין הדקדוקי הנכון.\nהמידע יהיה ציבורי.",
        "email": "דוא\"ל",
        "prefs-help-realname": "השם האמיתי הוא אופציונאלי.\nאם תבחרו לספקו, הוא ישמש לייחוס עבודתכם אליכם.",
-       "prefs-help-email": "×\9bת×\95×\91ת ×\93×\95×\90ר ×\90×\9cק×\98ר×\95× ×\99 ×\94×\99×\90 ×\90×\95פצ×\99×\95× ×\90×\9c×\99ת, ×\90×\9a ×\94×\99×\90 ×\93ר×\95ש×\94 ×\9c×\90×\99פ×\95ס ×\94ס×\99ס×\9e×\94 ×\91×\9eקר×\94 ×©×ª×©×\9b×\97×\95 ×\90ת ×\94ס×\99ס×\9eה.",
+       "prefs-help-email": "×\9bת×\95×\91ת ×\93×\95×\90ר ×\90×\9cק×\98ר×\95× ×\99 ×\94×\99×\90 ×\90×\95פצ×\99×\95× ×\90×\9c×\99ת, ×\90×\91×\9c ×\94×\99×\90 ×\97×\99×\95× ×\99ת ×\9c×\90×\99פ×\95ס ×\94ס×\99ס×\9e×\94 ×\91×\9eקר×\94 ×©×ª×©×\9b×\97×\95 ×\90×\95תה.",
        "prefs-help-email-others": "באפשרותך גם לבחור לאפשר לאחרים ליצור איתך קשר באמצעות דוא\"ל דרך קישור בדף המשתמש או בדף השיחה שלך.\nכתובת הדוא\"ל שלך לא תיחשף כשמשתמשים אחרים ייצרו קשר איתך.",
        "prefs-help-email-required": "כתובת דואר אלקטרוני נדרשת לכתיבה באתר.",
        "prefs-info": "מידע בסיסי",
        "delete-edit-reasonlist": "עריכת סיבות המחיקה",
        "delete-toobig": "דף זה כולל מעל {{PLURAL:$1|גרסה אחת|$1 גרסאות}} בהיסטוריית העריכות שלו. מחיקת דפים כאלה הוגבלה כדי למנוע פגיעה בביצועי האתר.",
        "delete-warning-toobig": "דף זה כולל מעל {{PLURAL:$1|גרסה אחת|$1 גרסאות}} בהיסטוריית העריכות שלו. מחיקה שלו עלולה להפריע לפעולות בבסיס הנתונים; אנא שקלו שנית את המחיקה.",
+       "delete-cantedit": "אין באפשרותך למחוק את הדף כי אין לך הרשאה לערוך אותו.",
        "deleting-backlinks-warning": "'''אזהרה:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|דפים אחרים]] מקשרים לדף שאתם עומדים למחוק או מכלילים אותו.",
        "rollback": "שחזור עריכות",
        "rollback_short": "שחזור",
index 8ff0b40..dcccfad 100644 (file)
@@ -54,7 +54,8 @@
                        "לערי ריינהארט",
                        "आलोक",
                        "रोहित रावत",
-                       "아라"
+                       "아라",
+                       "संजीव कुमार"
                ]
        },
        "tog-underline": "कड़ियाँ अधोरेखन:",
@@ -71,6 +72,7 @@
        "tog-watchdefault": "मेरे द्वारा सम्पादित पृष्ठों और फ़ाइलों को मेरी ध्यानसूची में जोड़ें",
        "tog-watchmoves": "मेरे द्वारा स्थानांतरित पृष्ठों एवं फ़ाइलों को मेरी ध्यानसूची में जोड़ें",
        "tog-watchdeletion": "मेरे द्वारा हटाए गए पृष्ठों एवं फ़ाइलों को मेरी ध्यानसूची में जोड़ें",
+       "tog-watchrollback": "मेरे द्वारा प्रत्यापन्न (रोलबैक) किये हुये पृष्ठों को मेरी ध्यानसूची में जोड़ें।",
        "tog-minordefault": "मेरे सभी सम्पादन छोटे बदलाव हैं",
        "tog-previewontop": "सम्पादन बक्से के ऊपर झलक दिखाएँ",
        "tog-previewonfirst": "प्रथम सम्पादन के बाद झलक दिखाएँ",
        "searchprofile-advanced-tooltip": "विशेष नामस्थानों में खोजें",
        "search-result-size": "$1 ({{PLURAL:$2|$2 शब्द}})",
        "search-result-category-size": "{{PLURAL:$1|$1 सदस्य}} ({{PLURAL:$2|$2 उपश्रेणी|$2 उपश्रेणियाँ}}, {{PLURAL:$3|$3 सञ्चिका|$3 सञ्चिकाएँ}})",
-       "search-result-score": "संबद्ध: $1%",
        "search-redirect": "($1 से पुनर्निर्देशित)",
        "search-section": "(अनुभाग $1)",
        "search-file-match": "(फ़ाइल सामग्री से मेल खाता है)",
        "uploadwarning": "अपलोड चेतावनी",
        "uploadwarning-text": "फ़ाइल विवरण को संशोधित कर फिर कोशिश करें।",
        "savefile": "फ़ाइल संजोयें",
-       "uploadedimage": "\"[[$1]]\" अपलोड करी",
-       "overwroteimage": "\"[[$1]]\" का नया अवतरण अपलोड किया",
        "uploaddisabled": "अपलोड प्रतिबंधित हैं।",
        "copyuploaddisabled": "यू॰आर॰एल द्वारा अपलोड अक्षम हैं।",
        "uploaddisabledtext": "फ़ाइल अपलोड अक्षम हैं।",
        "watchlist-details": "वार्ता पृष्ठों के अलावा {{PLURAL:$1|$1 पृष्ठ}} आपकी ध्यानसूची में हैं।",
        "wlheader-enotif": "ई-मेल नोटिफ़िकेशन सक्षम हैं।",
        "wlheader-showupdated": "पृष्ठ जो आपके द्वारा देखे जाने के बाद बदले गये हैं '''बोल्ड''' दिखेंगे।",
-       "wlnote2": "$2,$3 तक आखरी {{PLURAL:$1|घंटे|<strong>$1</strong> घंटों}} में बदलाव निम्नलिखित हैं।",
+       "wlnote": "$3 को $4 बजे तक पिछले '''$2''' {{PLURAL:$2|घंटे|घंटों}} में {{PLURAL:$1|हुआ एक|हुए '''$1'''}} परिवर्तन निम्न {{PLURAL:$1|है|हैं}}।",
        "wlshowlast": "पिछले $1 घंटे $2 दिन $3 देखें",
        "watchlist-options": "ध्यानसूची विकल्प",
        "watching": "ध्यान दे रहे हैं...",
        "delete-edit-reasonlist": "हटाने के कारण संपादित करें",
        "delete-toobig": "इस पृष्ठ का संपादन इतिहास $1 से अधिक {{PLURAL:$1|अवतरण}} होने की वजह से बहुत बड़ा है।\n{{SITENAME}} के अनपेक्षित रूप से बंद होने से रोकने के लिये ऐसे पृष्ठों को हटाने की अनुमति नहीं है।",
        "delete-warning-toobig": "इस पृष्ठ का संपादन इतिहास $1 से अधिक {{PLURAL:$1|अवतरण}} होने की वजह से बहुत बड़ा है।\nइसे हटाने से {{SITENAME}} के डाटाबेस की गतिविधियों में व्यवधान आ सकता है;\nकृपया सोच समझ कर आगे बढ़ें।",
+       "delete-cantedit": "आप इस पृष्ठ को नहीं हटा सकते क्योंकि आपको इसकी अनुमति नहीं है।",
        "deleting-backlinks-warning": "'''चेतावनी:''' जो पृष्ठ आप हटाने जा रहे हैं उससे [[Special:WhatLinksHere/{{FULLPAGENAME}}|अन्य पृष्ठ]] जुड़ते हैं अथवा उसे ट्रांसक्लूड करते हैं।",
        "rollback": "संपादन वापिस लें",
        "rollback_short": "वापिस लें",
index 255e77f..1600b9d 100644 (file)
        "talkpagelinktext": "Hisayranay",
        "specialpage": "Espesyal nga panid",
        "personaltools": "Mga kinaugalingon nga galamiton",
-       "postcomment": "Bag-o nga seksyon",
        "articlepage": "Lantawon ang panid sang ka-undan",
        "talk": "Paghisayranay",
        "views": "Mga talanawon",
        "externaldberror": "Mahimo nga may ara sang sala sa pagpamatood sang database ukon wala ka sa lugar nga magbag-o sang imo pang-guha nga akawnt.",
        "login": "Mag sulod",
        "nav-login-createaccount": "Magsulod / maghimo account",
-       "loginprompt": "Kinahanglan mo nga pasugtan ang kokes agod nga makasulod ka sa {{SITENAME}}.",
        "userlogin": "Mag sulod / maghimo account",
        "userloginnocreate": "Magsulod",
        "logout": "Mag guha",
        "searchprofile-advanced-tooltip": "Pangitaon sa pahungod nga espasyo sang pangalan",
        "search-result-size": "$1 ({{PLURAL:$2|1 pulong|$2 pulong}})",
        "search-result-category-size": "{{PLURAL:$1|1 ka miyembro|$1 ka mga miyembro}} ({{PLURAL:$2|1 ka subcategoriya|$2 ka mga subcategoriya}}, {{PLURAL:$3|1 ka hilera|$3 ka mga hilera}})",
-       "search-result-score": "Pagkaangot: $1%",
        "search-redirect": "(gindirekta liwat $1)",
        "search-section": "(seksiyon $1)",
        "search-suggest": "Ang buot mo silingon: $1",
        "file-too-large": "Ang dokumeto ginapadala mo madako gid.",
        "filename-tooshort": "Ang ngalan sang dokumento malipot gid.",
        "filetype-banned": "Ini sari ni dokumento madumili.",
-       "uploadedimage": "na-uplod \"[[$1]]\"",
        "watchthisupload": "Bantayan ining panid",
        "license": "Pagpanglisensya",
        "license-header": "Pagpanglisensya",
index 0b526c5..a66de3d 100644 (file)
        "searchprofile-advanced-tooltip": "Traži u zadanom imenskom prostoru",
        "search-result-size": "$1 ({{PLURAL:$2|1 riječ|$2 riječi}})",
        "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 potkategorija|$2 potkategorije|$2 potkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})",
-       "search-result-score": "Povezanost: $1%",
        "search-redirect": "(preusmjeravanje $1)",
        "search-section": "(odlomak $1)",
        "search-suggest": "Mislili ste: $1",
        "uploadwarning": "Upozorenje kod postavljanja",
        "uploadwarning-text": "Molimo izmijenite opis datoteke ispod i pokušajte kasnije.",
        "savefile": "Sačuvaj datoteku",
-       "uploadedimage": "je postavio \"$1\"",
-       "overwroteimage": "postavljena nova inačica od \"[[$1]]\"",
        "uploaddisabled": "Postavljanje je onemogućeno",
        "copyuploaddisabled": "Postavljanje URL-om onemogućeno.",
        "uploaddisabledtext": "Postavljanje datoteka je onemogućeno.",
index b952766..d51bf83 100644 (file)
        "talkpagelinktext": "Diskussion",
        "specialpage": "Spezialseit",
        "personaltools": "Meine Werkzeiche",
-       "postcomment": "Neier Abschnitt",
        "articlepage": "Inhaltsseit oonzeiche",
        "talk": "Diskussion",
        "views": "Ansichte",
        "externaldberror": "Entweder es lieht en Fehler bei der externe Authentifizierung voar orrer du därrefst dein externes Benutzerkonto net aktualisiere.",
        "login": "Oonmelde",
        "nav-login-createaccount": "Oonmelde / Benutzerkonto erstelle",
-       "loginprompt": "Zur Oonmeldung müsse Cookies aktiviert sin.",
        "userlogin": "Oonmelde / Benutzerkonto erstelle",
        "userloginnocreate": "Oonmelde",
        "logout": "Abmelde",
        "searchprofile-advanced-tooltip": "Such in weitre Noomeräume",
        "search-result-size": "$1 ({{PLURAL:$2|1 Wort|$2 Wörter}})",
        "search-result-category-size": "{{PLURAL:$1|1 Seit|$1 Seite}} ({{PLURAL:$2|1 Unnerkategorie|$2 Unnerkategorie}}, {{PLURAL:$3|1 Datei|$3 Dateie}})",
-       "search-result-score": "Relevanz: $1 %",
        "search-redirect": "(Weiterleitung von „$1“)",
        "search-section": "(Abschnitt $1)",
        "search-file-match": "(treffende Dateiinhalte)",
        "uploadwarning": "Hochloodewarnung",
        "uploadwarning-text": "Bittschön änner unner die Dateibeschreibung und versuch das nochmo erneit.",
        "savefile": "Datei speichre",
-       "uploadedimage": "lud „[[$1]]“ hoch",
-       "overwroteimage": "Hot en nei Version von \"[[$1]]\" hochgelood",
        "uploaddisabled": "Hochloode deaktiviert",
        "copyuploaddisabled": "Das Hochloode von URLs ist deaktiviert",
        "uploaddisabledtext": "Das Hochloode von Dateie ist deaktiviert.",
        "watchlist-details": "Du beobachtest {{PLURAL:$1|en Seit|$1 Seite}}, ohne dass Diskussionsseite getrennt gezählt werre.",
        "wlheader-enotif": "Der E-Mail-Benachrichtigungsdienst ist aktiviert.",
        "wlheader-showupdated": "Seite mit noch net gesiehne Ännrunge werre'''fett''' dorgestellt.",
-       "wlnote2": "Do folliche die Ändrunge von der letzte {{PLURAL:$1|Stund|<strong>$1</strong> Stunne}}. Stand: $2, $3.",
        "wlshowlast": "Zeich die Ännrunge von der letzte $1 Stunde, $2 Tooch orrer $3.",
        "watchlist-options": "Oonzeichoptione",
        "watching": "Beobachte …",
        "duplicate-defaultsort": "Achtung: Der Sortierungsschlüssel „$2“ üwerschreibt den voarher verwenndte Schlüssel „$1“.",
        "version": "Version",
        "version-extensions": "Installierte Erweitrunge",
+       "version-skins": "Benutzeroberfläche",
        "version-specialpages": "Erweitrungen mit Spezialseite",
        "version-parserhooks": "Parsererweitrunge",
        "version-variables": "Variable",
        "version-antispam": "Spamschutzerweitrunge",
-       "version-skins": "Benutzeroberfläche",
        "version-other": "Sonstiche Erweitrungen",
        "version-mediahandlers": "Medienutzungserweitrunge",
        "version-hooks": "Schnittstelle ''(Hooks)''",
index 3677994..a15861f 100644 (file)
        "talkpagelinktext": "diskusija",
        "specialpage": "Specialna strona",
        "personaltools": "Wosobinske nastroje",
-       "postcomment": "Nowy wotrězk",
        "articlepage": "Nastawk",
        "talk": "diskusija",
        "views": "Zwobraznjenja",
        "hidetoc": "schować",
        "collapsible-collapse": "Schować",
        "collapsible-expand": "Pokazać",
+       "confirmable-confirm": "Sy {{GENDER:$1|sej}} wěsty?",
+       "confirmable-yes": "Haj",
+       "confirmable-no": "Ně",
        "thisisdeleted": "$1 pokazać abo wobnowić?",
        "viewdeleted": "$1 pokazać?",
        "restorelink": "{{PLURAL:$1|1 wušmórnjenu wersiju|$1 wušmórnjenej wersiji|$1 wušmórnjene wersije|$1 wušmórnjenych wersijow}}",
        "invalidtitle-knownnamespace": "Njepłaćiwy titul z mjenowym rumom \"$2\" a tekstom \"$3\"",
        "invalidtitle-unknownnamespace": "Njepłaćiwy titul z njeznatym mjenowym rumom $1 a tekstom \"$2\"",
        "exception-nologin": "Njejsy přizjewjeny",
-       "exception-nologin-text": "Prošu [[Special:Userlogin|přizjew so]], zo by přistup na tutu stronu abo akciju měł.",
+       "exception-nologin-text": "Prošu přizjew so, zo by přistup na tutu stronu abo akciju měł.",
        "exception-nologin-text-manual": "Zo by přistup na tutu stronu abo akciju měł, dyrbiš so $1.",
        "virus-badscanner": "Špatna konfiguracija: Njeznaty wirusowy skener: ''$1''",
        "virus-scanfailed": "Skenowanje njeporadźiło (kode $1)",
        "externaldberror": "Běše pak eksterny zmylk awtentifikacije datoweje banki, pak njesměš swoje eksterne konto aktualizować.",
        "login": "Přizjewić",
        "nav-login-createaccount": "Konto wutworić abo so přizjewić",
-       "loginprompt": "Za přizjewjenje do {{GRAMMAR:genitiw|{{SITENAME}}}} dyrbja placki zmóžnjene być.",
        "userlogin": "Załožće konto abo přizjewće so",
        "userloginnocreate": "Přizjewić",
        "logout": "wotzjewić",
        "searchprofile-advanced-tooltip": "W swójskich mjenowych rumach pytać",
        "search-result-size": "$1 ({{PLURAL:$2|1 słowo|$2 słowje|$2 słowa|$2 słowow}})",
        "search-result-category-size": "{{PLURAL:$1|1 čłon|$1 čłonaj|$1 čłonojo|$1 čłonow}} ({{PLURAL:$2|1 podkategorija|$2 podkategoriji|$2 podkategorije|$2 podkategorijow}}, {{PLURAL:$3|1 dataja|$3 dataji|$3 dataje|$3 datajow}})",
-       "search-result-score": "Relewanca: $1 %",
        "search-redirect": "(Daleposrědkowanje $1)",
        "search-section": "(wotrězk $1)",
        "search-file-match": "(wotpowěduje datajowemu wobsahej)",
        "right-browsearchive": "Zhašane strony pytać",
        "right-undelete": "Strony wobnowić",
        "right-suppressrevision": "Wersije, kotrež su před administratorami schowane, přepruwować a wobnowić",
+       "right-viewsuppressed": "Před wužiwarjemi schowane wersije sej wobhladać",
        "right-suppressionlog": "Priwatne protokole wobhladać",
        "right-block": "Druhich wužiwarjow při wobdźěłowanju haćić",
        "right-blockemail": "Wužiwarja při słanju e-mejlow haćić",
        "uploadwarning": "Warnowanje",
        "uploadwarning-text": "Prošu změń slědowace datajowe wopisanje a spytaj hišće raz.",
        "savefile": "Dataju składować",
-       "uploadedimage": "je dataju „[[$1]]” nahrał",
-       "overwroteimage": "je nowu wersiju dataje „[[$1]]“ nahrał",
        "uploaddisabled": "Wodaj, nahraće je znjemóžnjene.",
        "copyuploaddisabled": "Nahraće přez URL znjemóžnjene.",
        "uploaddisabledtext": "Nahraće datajow je znjemóžnjene.",
        "license": "Licenca:",
        "license-header": "Licencowanje",
        "nolicense": "žadyn wuběr",
+       "licenses-edit": "Licencne nastajenja wobdźěłać",
        "license-nopreview": "(žadyn přehlad k dispoziciji)",
-       "upload_source_url": " (płaćiwy, zjawnje docpějomny URL)",
-       "upload_source_file": " (dataja na twojim ličaku)",
+       "upload_source_url": " (twoja wubrana dataja z płaćiweho, zjawnje přistupneho URL)",
+       "upload_source_file": " (twoja wubrana dataja z twojeho ličaka)",
+       "listfiles-delete": "zhašeć",
        "listfiles-summary": "Tuta specialna strona pokazuje wšě nahrate dataje.",
        "listfiles_search_for": "Za mjenom wobraza pytać:",
        "imgfile": "dataja",
        "wantedfiles": "Požadane dataje",
        "wantedfiletext-cat": "Slědowace dataje so wužiwaja, ale njeeksistuju. Dataje z cuzych repozitorijow hodźa so nalistować, byrnjež eksistowali. Tajke wopačne pozitiwy su <del>přešmórnjene</del>. Nimo toho so strony w [[:$1]] nalistuja, kotrež dataje zasadźuja, kotrež njeeksistuja.",
        "wantedfiletext-nocat": "Slědowace dataje so wužiwaja, ale njeeksistuja. Dataje z cuzych repozitorijow hodźa so nalistować, byrnjež eksistowali. Tajke wopačne pozitiwy su <del>přešmórnjene</del>.",
+       "wantedfiletext-nocat-noforeign": "Slědowace dataje so wužiwaja, ale njeeksistuja.",
        "wantedtemplates": "Falowace předłohi",
        "mostlinked": "Z najwjace stronami zwjazane strony",
        "mostlinkedcategories": "Z najwjace stronami zwjazane kategorije",
        "watchlist-details": "{{PLURAL:$1|$1 wobkedźbowana strona|$1 wobkedźbowanej stronje|$1 wobkedźbowane strony|$1 wobkedźbowanych stronow}}, bjeztoho zo so diskusijne strony dźělene liča.",
        "wlheader-enotif": "E-mejlowa zdźělenska słužba je zmóžnjena.",
        "wlheader-showupdated": "Strony, kotrež su so po twojim poslednim wopyće změnili, so '''tučne''' pokazuja.",
-       "wlnote2": "Slěduja změny {{PLURAL:$1|zańdźeneje hodźiny|zańdźeneju <strong>$1</strong> hodźinow|zańdźenych <strong>$1</strong> hodźin}} Staw: $2, $3.",
+       "wlnote": "Deleka {{PLURAL:$1|je poslednja změna|stej poslednjej '''$1''' změnje|su poslednje '''$1''' změny|je poslednich '''$1''' změnow}} za {{PLURAL:$2|poslednju hodźinu|poslednje '''$2''' hodźinje|poslednje '''$2''' hodźiny|poslednje '''$2''' hodźin}}, staw : $3, $4.",
        "wlshowlast": "Poslednje $1 hodź. - $2 dnjow - $3 pokazać",
        "watchlist-options": "Opcije wobkedźbowankow",
        "watching": "Wobkedźbuju…",
        "delete-edit-reasonlist": "Přičiny za wušmórnjenje wobdźěłać",
        "delete-toobig": "Tuta strona ma z wjace hač $1 {{PLURAL:$1|wersiju|wersijomaj|wersijemi|wersijemi}} wulke wobdźěłanske stawizny. Wušmórnjenje tajkich stronow bu wobmjezowane, zo by připadne přetorhnjenje {{SITENAME}} wobešło.",
        "delete-warning-toobig": "Tuta strona ma z wjace hač $1 {{PLURAL:$1|wersiju|wersijomaj|wersijemi|wersijemi}} wulke wobdźěłanske stawizny. Wušmórnjenje móže operacije datoweje banki {{SITENAME}} přetorhnyć; pokročuj z kedźbliwosću.",
+       "delete-cantedit": "Njemóžeš tutu stronu zhašeć, dokelž nimaš prawo ju wobdźěłować.",
        "deleting-backlinks-warning": "'''Warnowanje:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druhe strony]] wotkazuja k stronje abo strona je druhdźe zapřijata, kotruž chceš zhašeć.",
        "rollback": "Změny cofnyć",
        "rollback_short": "Cofnyć",
        "autoblockid": "#$1 awtomatisce blokować",
        "block": "Wužiwarja blokować",
        "unblock": "Blokowanje wužiwarja zběhnyć",
-       "blockip": "Wužiwarja zablokować",
+       "blockip": "{{GENDER:$1|Wužiwarja|Wužiwarku}} blokować",
        "blockip-legend": "Wužiwarja blokować",
        "blockiptext": "Wužij slědowacy formular deleka, zo by pisanski přistup za podatu IP-adresu abo wužiwarske mjeno blokował. To měło so jenož stać, zo by wandalizmej zadźěwało a woptpowědujo [[{{MediaWiki:Policy-url}}|zasadam]]. Zapodaj deleka přičinu (na př. citujo wosebite strony, kotrež běchu z woporom wandalizma).",
        "ipaddressorusername": "IP-adresa abo wužiwarske mjeno",
        "ipb-unblock-addr": "zablokowanje wužiwarja „$1“ zběhnyć",
        "ipb-unblock": "zablokowanje wužiwarja abo IP-adresy zběhnyć",
        "ipb-blocklist": "tuchwilne blokowanja zwobraznić",
-       "ipb-blocklist-contribs": "Přinoški za $1",
+       "ipb-blocklist-contribs": "Přinoški za {{GENDER:$1|$1}}",
        "unblockip": "Zablokowanje zběhnyć",
        "unblockiptext": "Wužij formular deleka, zo by blokowanje IP-adresy abo wužiwarskeho mjena zběhnył.",
        "ipusubmit": "Tute blokěrowanje skónčić",
        "autosumm-replace": "Strona bu z hinašim tekstom přepisana: '$1'",
        "autoredircomment": "posrědkuju k stronje „[[$1]]”",
        "autosumm-new": "Wutwori stronu z '$1'",
+       "autosumm-newblank": "Prózdna strona wutworjena",
        "size-kilobytes": "$1 kB",
        "lag-warn-normal": "Změny {{PLURAL:$1|zašłeje $1 sekundy|zašłeju $1 sekundow|zašłych $1 sekundow|zašłych $1 sekundow}} so w tutej lisćinje hišće njezwobraznjeja.",
        "lag-warn-high": "Wućeženja datoweje banki dla so změny {{PLURAL:$1|zašłeje $1 sekundy|zašłeje $1 sekundow|zašłych $1 sekundow|zašłych $1 sekundow}} w tutej lisćinje hišće njepokazuja.",
        "duplicate-defaultsort": "Warnowanje: Standardny sortěrowonski kluč (DEFAULTSORTKEY) \"$2\" přepisa prjedawšu sortěrowanski kluč \"$1\".",
        "version": "Wersija",
        "version-extensions": "Instalowane rozšěrjenja",
-       "version-skins": "Šaty",
+       "version-skins": "Instalowane drasty",
        "version-specialpages": "Specialne strony",
        "version-parserhooks": "Parserowe hoki",
        "version-variables": "Wariable",
        "version-hook-name": "Mjeno hoki",
        "version-hook-subscribedby": "Abonowany wot",
        "version-version": "(Wersija $1)",
+       "version-no-ext-name": "[žane mjeno]",
        "version-license": "Licenca MediaWiki",
        "version-ext-license": "Licenca",
        "version-ext-colheader-name": "Rozšěrjenje",
+       "version-skin-colheader-name": "Drasta",
        "version-ext-colheader-version": "Wersija",
        "version-ext-colheader-license": "Licenca",
        "version-ext-colheader-description": "Wopisanje",
        "logentry-rights-rights": "$1 je skupinske čłonstwo za $3 z $4 do $5 {{GENDER:$2|změnił|změniła}}",
        "logentry-rights-rights-legacy": "$1 je skupinske čłonstwo za $3 {{GENDER:$2|změnił|změniła}}",
        "logentry-rights-autopromote": "$1 je so awtomatisce wot $4 do $5 {{GENDER:$2|přirjadował|přirjadowała}}",
+       "logentry-upload-upload": "$1 je $3 {{GENDER:$2|nahrał|nahrała}}",
+       "logentry-upload-overwrite": "$1 je nowu wersiju $3 {{GENDER:$2|nahrał|nahrała}}",
+       "logentry-upload-revert": "$1 je $3 {{GENDER:$2|nahrał|nahrała}}",
        "rightsnone": "(ničo)",
        "feedback-bugornote": "Jeli sy zwólniwy, techniski problem nadrobnje wopisać, [$1 zdźěl prošu zmylk].\nHewak móžeš slědowacy jednory formular wužiwać. Twój komentar přida so stronje \"[$3 $2]\", z twojim wužiwarskim mjenom a z wobhladowakom, kotryž wužiwaš.",
        "feedback-subject": "Tema:",
        "expand_templates_remove_nowiki": "Taflički <nowiki> we wuslědku potłóčić",
        "expand_templates_generate_xml": "Analyzowy štom XML pokazać",
        "expand_templates_generate_rawhtml": "Hruby HTML pokazać",
-       "expand_templates_preview": "Přehlad"
+       "expand_templates_preview": "Přehlad",
+       "pagelanguage": "Selektor rěče strony",
+       "pagelang-name": "Strona",
+       "pagelang-language": "Rěč",
+       "pagelang-use-default": "Standardnu rěč wužiwać",
+       "pagelang-select-lang": "Rěč wubrać",
+       "right-pagelang": "Rěč strony změnić",
+       "action-pagelang": "rěč strony změnić",
+       "log-name-pagelang": "Protokol změnow rěče",
+       "log-description-pagelang": "To je protokol změnow na rěčach stronow.",
+       "logentry-pagelang-pagelang": "$1 je rěč strony za $3 wot $4 do $5 {{GENDER:$2|změnił|změniła}}.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (zmóžnjeny)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''znjemóžnjeny''')"
 }
index 6759eb6..f006760 100644 (file)
        "talkpagelinktext": "Diskite",
        "specialpage": "Paj Espesyal",
        "personaltools": "Zouti pèsonèl yo",
-       "postcomment": "Nouvo seksyon",
        "articlepage": "Wè paj atik",
        "talk": "Diskisyon",
        "views": "Afichay yo",
        "externaldberror": "Li sanble ke yon erè pwodui ak bazdone a pou idantifikasyon ki pa nan sistèm an, oubyen ou pa otorize pou mete a jou kont ou genyen nan lòt sistèm yo.",
        "login": "Konekte ou",
        "nav-login-createaccount": "Kreye yon kont oubyen konekte ou",
-       "loginprompt": "Ou dwe aksepte (aktive) koukiz (cookies) yo pou ou kapab konekte nan {{SITENAME}}.",
        "userlogin": "Kreye yon kont oubyen konekte ou",
        "userloginnocreate": "Konekte ou",
        "logout": "Dekonekte ou",
        "upload": "Chaje yon fichye",
        "uploadbtn": "Chaje yon fichye",
        "uploadlogpage": "Jounal chajman pou fichye yo",
-       "uploadedimage": "chaje « [[$1]] »",
        "listfiles": "Lis fichye yo",
        "file-anchor-link": "Fichye",
        "filehist": "Istorik fichye a",
index 374c088..2ab1aed 100644 (file)
        "preferences": "Beállítások",
        "mypreferences": "Beállítások",
        "prefs-edits": "Szerkesztéseid száma:",
+       "prefsnologintext2": "Kérjük jelentkezzen be a beállítások módosításához.",
        "prefs-skin": "Felület",
        "skin-preview": "előnézet",
        "datedefault": "Nincs beállítás",
index 52c0fa0..1b775f0 100644 (file)
        "talkpagelinktext": "Քննարկում",
        "specialpage": "Սպասարկող էջ",
        "personaltools": "Անձնական գործիքներ",
-       "postcomment": "Նոր բաժին",
        "articlepage": "Դիտել հոդվածը",
        "talk": "Քննարկում",
        "views": "Դիտումները",
        "externaldberror": "Տեղի է ունեցել վավերացման արտաքին տվյալների բազայի սխալ, կամ դուք չունեք բավարար իրավունքներ ձեր արտաքին հաշվի փոփոխման համար։",
        "login": "Մտնել համակարգ",
        "nav-login-createaccount": "Մտնել / Գրանցվել",
-       "loginprompt": "{{SITENAME}} մուտք գործելու համար հարկավոր է քուքիները թույլատրել։",
        "userlogin": "Մտնել / Գրանցվել",
        "userloginnocreate": "Մտնել",
        "logout": "Դուրս գալ համակարգից",
        "searchprofile-advanced-tooltip": "Որոնել նշված անվանատարածքներում",
        "search-result-size": "$1 ({{PLURAL:$2|1 բառ|$2 բառ}})",
        "search-result-category-size": "{{PLURAL:$1|անդամ}} ({{PLURAL:$2|ենթակատեգորիա}}, {{PLURAL:$3|նիշք}})",
-       "search-result-score": "Համընկնում $1%",
        "search-redirect": "(վերահղում $1)",
        "search-section": "(բաժին $1)",
        "search-suggest": "Գուցե նկատի ունե՞ք՝ $1",
        "fileexists-shared-forbidden": "Այսպիսի անվանմամբ նիշք արդեն գոյություն ունի նիշքերի ընդհանուր զետեղարանում։ Խնդրում ենք հետ վերադառնալ և բեռնել նիշքը նոր անվանմամբ։ [[File:$1|thumb|center|$1]]",
        "uploadwarning": "Զգուշացում",
        "savefile": "Հիշել ֆայլը",
-       "uploadedimage": "բեռնվեց «[[$1]]»",
-       "overwroteimage": "բեռնվեց «[[$1]]» նիշքի նոր տարբերակ",
        "uploaddisabled": "Բեռնումները արգելված են",
        "uploaddisabledtext": "Նիշքերի բեռնումը արգելափակված է։",
        "uploadscripted": "Այս նիշքը պարունակում է HTML-կոդ կամ գրվածք (սկրիպտ), որը կարող է սխալ մեկնաբանվել զննարկիչի կողմից։",
        "watchlist-details": "Ձեր հսկացանկում կա {{PLURAL:$1|$1 էջ|$1 էջ}}` քննարկման էջերը չհաշված։",
        "wlheader-enotif": "Էլ-փոստով տեղեկացումը միացված է։",
        "wlheader-showupdated": "Էջերը, որոնք փոփոխվել են ձեր դրանց վերջին այցից հետո բերված են '''թավատառ'''։",
+       "wlnote": "Ստորև բերված {{PLURAL:$1|է վերջին փոփոխությունը|են վերջին '''$1''' փոփոխությունները}} վերջին <strong>$2</strong> ժամվա ընթացքում։",
        "wlshowlast": "Ցուցադրել վերջին $1 ժամերը $2 օրերը $3",
        "watchlist-options": "Հսկացանկի նախընտրություններ",
        "watching": "Հսկվում է...",
index 87985cc..3f68663 100644 (file)
        "searchprofile-advanced-tooltip": "Pencarian di ruang nama tertentu",
        "search-result-size": "$1 ({{PLURAL:$2|1 kata|$2 kata}})",
        "search-result-category-size": "{{PLURAL:$1|1 anggota|$1 anggota}} ({{PLURAL:$2|1 subkategori|$2 subkategori}}, {{PLURAL:$3|1 berkas|$3 berkas}})",
-       "search-result-score": "Relevansi: $1%",
        "search-redirect": "(pengalihan $1)",
        "search-section": "(bagian $1)",
        "search-file-match": "(cocok dengan isi berkas)",
        "uploadwarning": "Peringatan pemuatan",
        "uploadwarning-text": "Mohon perbaiki keterangan berkas di bawah dan coba lagi.",
        "savefile": "Simpan berkas",
-       "uploadedimage": "memuat \"[[$1]]\"",
-       "overwroteimage": "memuat versi baru dari \"[[$1]]\"",
        "uploaddisabled": "Maaf, fasilitas pemuatan dimatikan.",
        "copyuploaddisabled": "Pengunggahan dengan URL dimatikan.",
        "uploaddisabledtext": "Pemuatan berkas tidak diizinkan.",
        "watchlist-details": "Terdapat {{PLURAL:$1|$1 halaman|$1 halaman}} di daftar pantauan Anda, tidak termasuk halaman pembicaraan.",
        "wlheader-enotif": "Notifikasi surel diaktifkan.",
        "wlheader-showupdated": "Halaman-halaman yang telah berubah sejak kunjungan terakhir Anda ditampilkan dengan '''huruf tebal'''.",
-       "wlnote2": "Di bawah ini adalah perubahan yang terjadi dalam {{PLURAL:$1|sejam|<strong>$1</strong> jam}} terakhir, per $2, $3.",
+       "wlnote": "Di bawah ini adalah {{PLURAL:$1|perubahan|'''$1''' perubahan}} terakhir dalam '''$2''' jam terakhir, per $3, $4.",
        "wlshowlast": "Tampilkan $1 jam $2 hari terakhir $3",
        "watchlist-options": "Opsi daftar pantauan",
        "watching": "Memantau...",
index 6e09f82..b1f5651 100644 (file)
        "talkpagelinktext": "Conversation",
        "specialpage": "Págine special",
        "personaltools": "Mi utensiles",
-       "postcomment": "Nov division",
        "articlepage": "Vider li articul",
        "talk": "Discussion",
        "views": "Aspectes",
        "yourdomainname": "Tui dominia:",
        "login": "Aperter session",
        "nav-login-createaccount": "Crear un conto o intrar",
-       "loginprompt": "Cookies deve esser permisset por intrar in {{SITENAME}}.",
        "userlogin": "Crear un conto o intrar",
        "userloginnocreate": "Intrar",
        "logout": "Surtida",
        "uploadwarning": "Advertiment de cargament",
        "uploadwarning-text": "Pleser modificar li descrition de file infra e prova denov.",
        "savefile": "Conservar file",
-       "uploadedimage": "cargat \"[[$1]]\"",
        "uploadscripted": "Ti file contene HTML o code scrite que posse esser interpretet erroremen per un navigator web.",
        "uploadvirus": "Li file contene un virus!\nDetallies: $1",
        "upload-maxfilesize": "Mesura maxim de file: $1",
        "watchlist-details": "{{PLURAL:$1|$1 págine|$1 págines}} in tui liste de págines vigilat, sin págines de discussion.",
        "wlheader-enotif": "Li notification de e-mail es permisset.",
        "wlheader-showupdated": "Págines quel hat esset mutat desde tui ultim visitation es monstrat in '''nigri'''",
+       "wlnote": "Infra {{PLURAL:$1|es li ultim change|es li ultim '''$1''' changes}} in li ultim {{PLURAL:$2|hor|'''$2''' hores}}.",
        "wlshowlast": "Monstra ultim $1 hores $2 dies $3",
        "watchlist-options": "Optiones de liste de págines vigilat",
        "watching": "Vigilant...",
index 88015ef..e976fac 100644 (file)
        "talkpagelinktext": "Okwu",
        "specialpage": "Ihü mkpà",
        "personaltools": "Ngwa nkem",
-       "postcomment": "Nkeji ohúrù",
        "articlepage": "Zi ihü iheníle",
        "talk": "Akíkó",
        "views": "Há hụrụ ya olé",
        "yourdomainname": "Obí gi:",
        "login": "Banyé",
        "nav-login-createaccount": "Banyé / ké buwá",
-       "loginprompt": "Í gi nwé cookies Í chórí bátá {{SITENAME}}.",
        "userlogin": "Banyé / ké buwá",
        "userloginnocreate": "Banyé",
        "logout": "Fwuör",
        "searchprofile-everything-tooltip": "Tùwé ihe nile (na okwu ihü)",
        "searchprofile-advanced-tooltip": "Chọwa na ímé áhàámá nke gí Í kèrè",
        "search-result-size": "$1 ({{PLURAL:$2|mkpurụ edemede 1|$2 mkpurụ edemede}})",
-       "search-result-score": "Otu o di nkpà: $1%",
        "search-redirect": "(kúfù $1)",
        "search-section": "(nkeji $1)",
        "search-suggest": "Ị̀ kwèshirí dé: $1",
        "filereuploadsummary": "Gbanwere maka usòrò:",
        "filesource": "Mkpọlọ́gwụ̀:",
        "savefile": "Domá usòrò",
-       "uploadedimage": "\"[[$1]]\" dị na élú",
        "upload-source": "Usòrò mkpọlógwù",
        "sourcefilename": "Áhà usòrò mkpọlógwù:",
        "sourceurl": "URL mkpọlógwù:",
        "watchlisttools-edit": "Lé na rü na ndetù ńlé",
        "watchlisttools-raw": "Rüo ndetù nlènlé mèpòrò",
        "version": "Ùdị",
-       "version-specialpages": "Ihü mkpà",
        "version-skins": "Akpụkpọ",
+       "version-specialpages": "Ihü mkpà",
        "version-other": "Nke ozor",
        "version-hooks": "Nyazo",
        "version-hook-name": "Áhà nyazo",
index 5ed80a3..d350f64 100644 (file)
        "talkpagelinktext": "дувцам",
        "specialpage": "ГӀулакха оагӀув",
        "personaltools": "Са гӀорсаш",
-       "postcomment": "Керда декъам",
        "articlepage": "Йоазув тӀа бӀаргтасса",
        "talk": "Дувцам",
        "views": "БӀаргтассамаш",
        "yourdomainname": "Шун цӀеноагӀув:",
        "login": "Чувала/яла",
        "nav-login-createaccount": "ЦӀи яьккха/Ший oагӀув ела",
-       "loginprompt": "Укх белхацхьоагIоца доттагӀал лаца, шун \"cookies\" йийла хьалдеза.",
        "userlogin": "ЦӀи яьккха/ОагӀув ела",
        "userloginnocreate": "Чувала/яла",
        "logout": "Аравала/яла",
        "uploadlogpage": "Чуяьккхамий тептар",
        "filedesc": "Лоаца лоацам",
        "fileuploadsummary": "Лоаца лоацам:",
-       "uploadedimage": "\"[[$1]]\" чуяьккхай",
        "license": "ЦIийяздар",
        "license-header": "ЦIийяздар",
        "imgfile": "паьл",
index 01f4b3e..a519039 100644 (file)
        "talkpagelinktext": "Diskutez",
        "specialpage": "Specala pagino",
        "personaltools": "Personala utensili",
-       "postcomment": "Nova seciono",
        "articlepage": "Regardar artiklo",
        "talk": "Diskuto",
        "views": "Apari",
        "yourdomainname": "Vua domano:",
        "login": "Enirar",
        "nav-login-createaccount": "Enirar",
-       "loginprompt": "Vu mustas permisar ''cookies'' por enirar a {{SITENAME}}.",
        "userlogin": "Enirar / krear konto",
        "userloginnocreate": "Enirar",
        "logout": "Ekirar",
        "searchprofile-articles-tooltip": "Serchez en $1",
        "searchprofile-images-tooltip": "Serchez arkivi",
        "search-result-size": "$1 ({{PLURAL:$2|1 vorto|$2 vorti}})",
-       "search-result-score": "Importo: $1%",
        "search-redirect": "(ridirektilo $1)",
        "search-section": "(seciono $1)",
        "search-suggest": "Ka vu volis dicar: $1",
        "fileexists": "Arkivo kun ica nomo ja existas.\nVolutez kontrolar <strong>[[:$1]]</strong> se vu ne esas certa pri chanjar olu.\n[[$1|thumb]]",
        "uploadwarning": "Averto pri la adkargo di arkivo",
        "savefile": "Registragar arkivo",
-       "uploadedimage": "adkargita \"[[$1]]\"",
        "uploaddisabled": "Pardonez, la adkargo esas desaktiva.",
        "watchthisupload": "Surveyar ica arkivo",
        "upload-success-subj": "Adcharjo sucesoza",
        "unwatch": "Ne plus surveyar",
        "unwatchthispage": "Ne plus surveyar",
        "notanarticle": "Ne esas artiklo",
+       "wlnote": "Infre esas la lasta {{PLURAL:$1|chanjo|'''$1''' chanji}} dum la lasta {{PLURAL:$2|horo|'''$2''' hori}}.",
        "wlshowlast": "Montrar la lasta $1 hori $2 dii $3",
        "watchlist-options": "Surveryo-listo selekti",
        "watching": "Surveyanta…",
index d65c9b7..3375101 100644 (file)
        "searchprofile-advanced-tooltip": "Leita í ákveðnum nafnrýmum",
        "search-result-size": "$1 ({{PLURAL:$2|1 orð|$2 orð}})",
        "search-result-category-size": "{{PLURAL:$1|1 meðlimur|$1 meðlimir}} ({{PLURAL:$2|1 undirflokks|$2 undirflokka}}, {{PLURAL:$3|1 skrá|$3 skrár}})",
-       "search-result-score": "Gildi: $1%",
        "search-redirect": "(tilvísun $1)",
        "search-section": "(hluti $1)",
        "search-file-match": "(passar við innihald skráa)",
        "rcshowhidebots": "$1 vélmenni",
        "rcshowhidebots-show": "Sýna",
        "rcshowhidebots-hide": "Fela",
-       "rcshowhideliu": "$1 skráðir notendur",
+       "rcshowhideliu": "$1 skráða notendur",
        "rcshowhideliu-show": "Sýna",
        "rcshowhideliu-hide": "Fela",
        "rcshowhideanons": "$1 óinnskráða notendur",
        "uploadwarning": "Aðvörun",
        "uploadwarning-text": "Vinsamlegast breyttu myndalýsingunni hér fyrir neðan og reyndu aftur.",
        "savefile": "Vista",
-       "uploadedimage": "hlóð inn „[[$1]]“",
-       "overwroteimage": "hlóð inn nýrri útgáfu af \"[[$1]]\"",
        "uploaddisabled": "Lokað er fyrir að hlaða inn myndum.",
        "copyuploaddisabled": "Lokað er fyrir að hlaða inn myndum frá vefslóð.",
        "uploaddisabledtext": "Lokað er fyrir að hlaða inn skrám.",
        "watchlist-details": "{{PLURAL:$1|$1 síða|$1 síður}} á vaktlistanum þínum, fyrir utan spjallsíður.",
        "wlheader-enotif": "Tilkynning með tölvupósti er virk.",
        "wlheader-showupdated": "Síðum sem hefur verið breytt síðan þú skoðaðir þær síðast eru '''feitletraðar'''.",
+       "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, $3",
        "watchlist-options": "Vaktlistastillingar",
        "watching": "Vakta...",
index 59fd0fc..91b5254 100644 (file)
        "movepagetalktext": "La corrispondente pagina di discussione, se esiste, sarà spostata automaticamente insieme alla pagina principale, '''tranne che nei seguenti casi''':\n* lo spostamento della pagina è tra namespace diversi;\n* in corrispondenza del nuovo titolo esiste già una pagina di discussione (non vuota);\n* la casella qui sotto è stata deselezionata.\n\nIn questi casi, se lo si ritiene opportuno, occorre spostare o aggiungere manualmente le informazioni contenute nella pagina di discussione.",
        "movearticle": "Sposta la pagina:",
        "moveuserpage-warning": "'''Attenzione:''' Si sta per spostare una pagina utente. Nota che verrà spostata solamente la pagina. L'utente ''non'' sarà rinominato.",
-       "movecategorypage-warning": "<strong>Attenzione:</strong> stai per spostare una categoria. Solo la pagina verrà spostata, ma tutte le pagine nella vecchia categoria <em>non</em> saranno inserite nella nuova.",
+       "movecategorypage-warning": "<strong>Attenzione:</strong> si sta per spostare una categoria. Solo questa pagina verrà spostata: tutte le pagine nella vecchia categoria <em>non</em> saranno inserite nella nuova.",
        "movenologintext": "Lo spostamento delle pagine è consentito solo agli utenti registrati che hanno eseguito l'[[Special:UserLogin|accesso]] al sito.",
        "movenotallowed": "Non si dispone dei permessi necessari per spostare le pagine.",
        "movenotallowedfile": "Non si dispone dei permessi necessari per spostare i file.",
index b3ba7e9..f3e00c8 100644 (file)
        "invalidtitle-knownnamespace": "名前空間名「$2」と名前「$3」の組み合わせはページ名として無効です",
        "invalidtitle-unknownnamespace": "不明な名前空間番号 $1 と名前「$2」の組み合わせはページ名として無効です",
        "exception-nologin": "ログインしていません",
-       "exception-nologin-text": "このページまたは操作にアクセスできるようにするには[[Special:Userlogin|ログイン]]してください。",
+       "exception-nologin-text": "このページまたは操作にアクセスできるようにするにはログインしてください。",
        "exception-nologin-text-manual": "このページまたは操作にアクセスできるようにするには$1してください。",
        "virus-badscanner": "環境設定が不適合です: 不明なウイルス対策ソフトウェア: <em>$1</em>",
        "virus-scanfailed": "スキャンに失敗しました (コード $1)",
        "parser-template-recursion-depth-warning": "テンプレートの再帰の深さ ($1) が上限を超えました",
        "language-converter-depth-warning": "言語変換機能の深さ ($1) が制限を超えました",
        "node-count-exceeded-category": "ノード数が制限を超えたページ",
-       "node-count-exceeded-category-desc": "ノード数が制限を超えたページを列挙するカテゴリです。",
+       "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) が上限を超えました",
        "preferences": "個人設定",
        "mypreferences": "個人設定",
        "prefs-edits": "編集回数:",
-       "prefsnologintext2": "個人設定を変更するには$1してください。",
+       "prefsnologintext2": "個人設定を変更するにはログインしてください。",
        "prefs-skin": "外装",
        "skin-preview": "プレビュー",
        "datedefault": "選択なし",
        "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": "リンク切れしたファイルを含むページ (ファイルを埋め込むリンクがあり、そのファイルが存在しない) に追加されるカテゴリ",
-       "hidden-category-category-desc": "<code><nowiki>__HIDDENCAT__</nowiki></code> を含むカテゴリ。このカテゴリは、既定ではページのカテゴリ リンク ボックス内に表示されません。",
+       "broken-file-category-desc": "リンク切れしたファイルを含むページ (ファイルを埋め込むリンクがあり、そのファイルが存在しない)",
+       "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このページまたはそのトークページが変更されると、ウォッチリストに表示されます。",
        "delete-edit-reasonlist": "削除理由を編集",
        "delete-toobig": "このページには、$1版を超える編集履歴があります。\nこのようなページの削除は、{{SITENAME}}の偶発的な問題を避けるため、制限されています。",
        "delete-warning-toobig": "このページには、 $1版を超える編集履歴があります。\n削除すると、{{SITENAME}}のデータベース処理に大きな負荷がかかります。\n十分に注意してください。",
+       "delete-cantedit": "あなたにはこのページを編集する権限がないため、削除できません。",
        "deleting-backlinks-warning": "'''警告:''' 削除しようとしているページは、[[Special:WhatLinksHere/{{FULLPAGENAME}}|他のページ]]からリンクまたは参照読み込みされています。",
        "rollback": "編集を巻き戻し",
        "rollback_short": "巻き戻し",
        "autoblockid": "自動ブロック #$1",
        "block": "利用者をブロック",
        "unblock": "利用者のブロックを解除",
-       "blockip": "利用者をブロック",
+       "blockip": "{{GENDER:$1|利用者}}をブロック",
        "blockip-legend": "利用者をブロック",
        "blockiptext": "以下のフォームを使用して、指定したIPアドレスまたは利用者からの書き込みアクセスをブロックできます。\nこのような措置は、荒らしからの防御の目的のみに行われるべきで、また[[{{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": "このブロックを解除",
index d7054bf..81bc7a8 100644 (file)
        "talkpagelinktext": "Chat",
        "specialpage": "Peshal piej",
        "personaltools": "Persnal tuuldem",
-       "postcomment": "Nyuu sekshan",
        "articlepage": "Vyuu kantent piej",
        "talk": "Diskoshan",
        "views": "Vyuu",
        "externaldberror": "Aida aatentikieshan dietabies era okor ar yu no lou fi opdiet yu extoernal akount.",
        "login": "Lag iin",
        "nav-login-createaccount": "Lag iin / kriet akount",
-       "loginprompt": "Yu mos ab kukidem eniebl fi lag iin tu {{SITENAME}}.",
        "userlogin": "Lag iin / kriet akount",
        "userloginnocreate": "Lag iin",
        "logout": "Lag out",
        "recentchangeslinked-to": "Shuo chienjdem tu piej wa lingk tu di gibn piej insted",
        "upload": "Opluod fail",
        "uploadlogpage": "Opluod lag",
-       "uploadedimage": "opluodid \"[[$1]]\"",
        "filehist": "Fail ischri",
        "filehist-help": "Klik pan a diet/taim fi vyuu di fail az ou iapier a di taim.",
        "filehist-current": "korant",
index 4f91578..1e4aa6b 100644 (file)
@@ -6,7 +6,8 @@
                        "Urhixidur",
                        "Xabier Armendaritz",
                        "Ælsån",
-                       "Midnight Gambler"
+                       "Midnight Gambler",
+                       "아라"
                ]
        },
        "tog-underline": "Understreg henvesnenger",
@@ -17,7 +18,6 @@
        "tog-showtoolbar": "Ves værktøjslenje til redigærenge",
        "tog-editondblclick": "Redigær sider ve dåbeltklik",
        "tog-editsectiononrightclick": "Redigær åfsnet ve at klikke på deres titler",
-       "tog-rememberpassword": "Husk adgengskode til næste besøĝ frå denne kompjuter (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "tog-watchcreations": "Tilføj sider a åpretter til miin åvervågnengsliste",
        "tog-watchdefault": "Tilføj sider a redigærer til miin åvervågnengsliste",
        "tog-watchmoves": "Tilføj sider a flytter til miin åvervågnengsliste",
        "talkpagelinktext": "diskusje",
        "specialpage": "Sonst side",
        "personaltools": "Personlige værktø'r",
-       "postcomment": "Tilføj en biskrevselenger",
        "articlepage": "Se'n ertikel",
        "talk": "Diskusje",
        "views": "Vesnenger",
        "filedeleteerror": "Kan ekke slette'n file \"$1\".",
        "directorycreateerror": "Kan ekke åprette katalåget \"$1\".",
        "filenotfound": "Kan ekke finde'n file \"$1\".",
-       "fileexistserror": "Kan ekke åprette \"$1\": æ file findes ålrede",
        "unexpected": "Uventet værdi: \"$1\"=\"$2\".",
        "formerror": "Fejl: Kan ekke åfsende formulær",
        "badtitle": "Førkert skrevselenger",
        "remembermypassword": "Husk min adgangskode til næste gang (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "login": "Loĝ på",
        "nav-login-createaccount": "Åpret æ konto æller loĝ på",
-       "loginprompt": "Du skal have cookies slået til før at kunne loĝge på {{SITENAME}}.",
        "userlogin": "Åpret æ konto æller loĝ på",
        "logout": "Loĝ åf",
        "userlogout": "Loĝ åf",
        "recentchanges": "Seneste ændrenger",
        "recentchanges-feed-description": "Ve dette fiid ken du følge de seneste ændrenger på {{SITENAME}}.",
        "rcnotefrom": "Nedenfør ses ændrengerne frå '''$2''' til '''$1''' vest.",
-       "rclistfrom": "Ves nye ændrenger startende frå $1",
+       "rclistfrom": "Ves nye ændrenger startende frå $3 $2",
        "rcshowhideminor": "$1 lile ændrenger",
        "rcshowhidebots": "$1 råbotter",
        "rcshowhideliu": "$1 regestrerede brugere",
        "upload": "Læĝ æ billet åp",
        "uploadbtn": "Læĝ æ gøret åp",
        "uploadlogpage": "Åplægnengslog",
-       "uploadedimage": "Låĝde \"[[$1]]\" åp",
        "listfiles": "Billetliste",
        "file-anchor-link": "Billet",
        "filehist": "Billetskigt",
        "log": "Loglister",
        "all-logs-page": "Åle loglister",
        "allpages": "Åle ertikler",
-       "alphaindexline": "$1 til $2",
        "nextpage": "Næste side ($1)",
        "prevpage": "Førge side ($1)",
        "allpagesfrom": "Ves sider startende frå:",
index 3a6b61b..0f1efd1 100644 (file)
        "talkpagelinktext": "Wicara",
        "specialpage": "Kaca astaméwa",
        "personaltools": "Piranti pribadi",
-       "postcomment": "Bagéyan anyar",
        "articlepage": "nDeleng artikel",
        "talk": "Dhiskusi",
        "views": "Tampilan",
        "externaldberror": "Ana kasalahan otèntikasi basis dhata èksternal utawa panjenengan ora pareng nglakoni pemutakhiran marang akun èksternal panjenengan.",
        "login": "Mlebu log",
        "nav-login-createaccount": "Log mlebu / nggawé rékening (akun)",
-       "loginprompt": "Panjenengan kudu ngaktifaké ''cookies'' supaya bisa mlebu (log in) ing {{SITENAME}}.",
        "userlogin": "Mlebu log / gawé rékening (akun)",
        "userloginnocreate": "Mlebu log",
        "logout": "Oncat",
        "searchprofile-advanced-tooltip": "Panggolèkan ing bilik jeneng biasa (''custom'')",
        "search-result-size": "$1 ({{PLURAL:$2|1 tembung|$2 tembung}})",
        "search-result-category-size": "{{PLURAL:$1|1 anggota|$1 anggota}} ({{PLURAL:$2|1 subkatégori|$2 subkatégori}}, {{PLURAL:$3|1 berkas|$3 berkas}})",
-       "search-result-score": "Relevansi: $1%",
        "search-redirect": "(pangalihan $1)",
        "search-section": "(sèksi $1)",
        "search-suggest": "Apa panjenengan kersané: $1",
        "uploadwarning": "Pèngetan pangunggahan berkas",
        "uploadwarning-text": "Mangga owah katrangan berkas nèng ngisor lan coba manèh.",
        "savefile": "Simpen berkas",
-       "uploadedimage": "gambar \"[[$1]]\" kaunggahaké",
-       "overwroteimage": "ngunggahaké vèrsi anyar saka \"[[$1]]\"",
        "uploaddisabled": "Nuwun sèwu, fasilitas pangunggahan dipatèni.",
        "copyuploaddisabled": "Ngunggah mawa URL dipatèni.",
        "uploaddisabledtext": "Pangunggahan berkas ora diidinaké.",
        "watchlist-details": "Ngawasaké {{PLURAL:$1|$1 kaca|$1 kaca}}, ora kalebu kaca-kaca dhiskusi.",
        "wlheader-enotif": "Notifikasi layang elektronik diaktifaké.",
        "wlheader-showupdated": "Kaca-kaca sing wis owah wiwit ditiliki panjenengan kaping pungkasan, dituduhaké mawa '''aksara kandel'''",
+       "wlnote": "Ngisor iki {{PLURAL:$1|owahan pungkasan|'''$1''' owahan pungkasan}} {{PLURAL:$2|jam|'''$2''' jam}} kapungkur, per $3, $4.",
        "wlshowlast": "Tuduhna $1 jam $2 dina $3 pungkasan",
        "watchlist-options": "Opsi daftar pangawasan",
        "watching": "Ngawasi...",
        "duplicate-defaultsort": "Pènget: Kunci pilih asal (''Default sort key'') \"$2\" nggantèkaké kunci pilih asal sadurungé \"$1\".",
        "version": "Versi",
        "version-extensions": "Èkstènsi sing wis diinstalasi",
+       "version-skins": "Kulit",
        "version-specialpages": "Kaca astaméwa (kaca kusus)",
        "version-parserhooks": "Canthèlan parser",
        "version-variables": "Variabel",
        "version-antispam": "Pambendhung spam",
-       "version-skins": "Kulit",
        "version-other": "Liyané",
        "version-mediahandlers": "Pananganan média",
        "version-hooks": "Canthèlan-canthèlan",
index 857fa17..f740776 100644 (file)
        "talkpagelinktext": "განხილვა",
        "specialpage": "სპეციალური გვერდი",
        "personaltools": "პირადი ხელსაწყოები",
-       "postcomment": "ახალი სექცია",
        "articlepage": "სტატიის ნახვა",
        "talk": "განხილვა",
        "views": "გადახედვა",
        "externaldberror": "საგარეო მონაცემთა ბაზაში აუტენტიფიკაციის შეცდომაა, ან თქვენ არ გაქვთ საკმარისი უფლებები საგარეო ანგარიშში ცვლილებების შესატანად.",
        "login": "შესვლა",
        "nav-login-createaccount": "შესვლა / რეგისტრაცია",
-       "loginprompt": "{{SITENAME}}-ში შესასვლელად საჭიროა კუკის (cookies) გააქტიურება.",
        "userlogin": "შესვლა/ანგარიშის შექმნა",
        "userloginnocreate": "შესვლა",
        "logout": "გასვლა",
        "searchprofile-advanced-tooltip": "ძიება სახელთა მოცემულ სივრცეში",
        "search-result-size": "$1 ($2 სიტყვა)",
        "search-result-category-size": "{{PLURAL:$1|$1 ელემენტი|$1 ელემენტი|$1 ელემენტები}} ({{PLURAL:$2|$2 ქვეკატეგორია|$2 ქვეკატეგორიები|$2 ქვეკატეგორიები}}, {{PLURAL:$3|$3 ფაილი|$3 ფაილი|$3 ფაილი}})",
-       "search-result-score": "რელევანტურობა $1 %",
        "search-redirect": "(გადამისამართება $1)",
        "search-section": "(სექცია $1)",
        "search-file-match": "(ემთხვევა ფაილის შინაარსს)",
        "uploadwarning": "გადატვირთვის შეხსენება",
        "uploadwarning-text": "გთხოვთ ჩაასწოროთ ფაილის აღწერა ქვევით და ხელმეორედ სცადოთ.",
        "savefile": "ფაილის შენახვა",
-       "uploadedimage": "აიტვირთა „[[$1]]“",
-       "overwroteimage": "ატვირთულია „[[$1]]-ის“ ახალი ვერსია",
        "uploaddisabled": "ატვირთვა გამორთულია.",
        "copyuploaddisabled": "URL ატვირთვა გაღიშულია",
        "uploaddisabledtext": "ფაილების ატვირთვა შეუძლებელია.",
        "watchlist-details": "$1 გვერდია თქვენი კონტროლის სიაში განხილვის გვერდების ჩაუთვლელად.",
        "wlheader-enotif": "ელ.ფოსტით შეტყობინება ჩართულია.",
        "wlheader-showupdated": "თქვენი ბოლო ვიზიტის შემდეგ შეცვლილი გვერდები, აღნიშნულია '''მუქად'''.",
+       "wlnote": "ქვემოთ {{PLURAL:$1|ნაჩვენებია ბოლო ცვლილება|ნაჩვენებია ბოლო '''$1''' ცვლილება}} უკანასკნელი {{PLURAL:$2|საათის|'''$2''' საათის}} მანძილზე, $3, $4 მდგომარეობით.",
        "wlshowlast": "აჩვენე ბოლო $1 საათის $2 დღის $3",
        "watchlist-options": "კონტროლის სიის პარამეტრები",
        "watching": "კონტროლებადი...",
        "duplicate-defaultsort": "'''ყურადღება.'''სორტირების გასაღებს «$2»-ს გააჭრის წინა გასაღებს «$1»-ს.",
        "version": "ვერსია",
        "version-extensions": "დაყენებული გაფართოებები",
+       "version-skins": "იერსახე",
        "version-specialpages": "სპეციალური გვერდები",
        "version-parserhooks": "სინტაქსური ანალიზატორის ჰუკები",
        "version-variables": "ცვალებადი",
        "version-antispam": "სპამის პრევენცია",
-       "version-skins": "იერსახე",
        "version-api": "API",
        "version-other": "სხვა",
        "version-mediahandlers": "მედია დამუშავება",
index 8380ac5..f5237ee 100644 (file)
        "talkpagelinktext": "Sa'wbet",
        "specialpage": "Arnawlı bet",
        "personaltools": "Paydalanıwshı a'sbapları",
-       "postcomment": "Taza bo'lim",
        "articlepage": "Mag'lıwmat betin ko'riw",
        "talk": "Diskussiya",
        "views": "Ko'rinis",
        "yourdomainname": "Sizin' domen:",
        "login": "Kiriw",
        "nav-login-createaccount": "Kiriw / akkaunt jaratıw",
-       "loginprompt": "{{SITENAME}} saytına kiriw ushın kukiler qosılg'an bolıwı kerek.",
        "userlogin": "Kiriw / akkaunt jaratıw",
        "logout": "Shıg'ıw",
        "userlogout": "Shıg'ıw",
        "searchprofile-everything-tooltip": "Barlıq betlerde izlew (sa'wbet betlerin qosıp)",
        "searchprofile-advanced-tooltip": "Berilgen isimler ko'pliginde izlew",
        "search-result-size": "$1 ({{PLURAL:$2|1 so'z|$2 so'z}})",
-       "search-result-score": "Qatnasıqlıg'ı: $1%",
        "search-redirect": "(qayta bag'ıtlandırıw $1)",
        "search-section": "(bo'lim $1)",
        "search-suggest": "Ba'lkim, siz bunı na'zerde tutqan shig'arsız: $1",
        "largefileserver": "Bul faildın mo'lsheri serverdin' ruxsatınan u'lken.",
        "uploadwarning": "Aploud eskertiwi",
        "savefile": "Fayldı saqla",
-       "uploadedimage": "«[[$1]]» faylı aploud qılındı",
-       "overwroteimage": "\"[[$1]]\" faylının' jan'a nusqası aploud qılındı",
        "uploaddisabled": "Aploudqa ruxsat berilmegen",
        "uploaddisabledtext": "Fayllardı aploud qılıw toqtatılg'an.",
        "uploadvirus": "Bul failda virus bar! Mag'lıwmat: $1",
        "notvisiblerev": "Nusqa o'shirildi",
        "watchlist-details": "Baqlaw dizimin'izde (sa'wbet betlerin esapqa almag'anda) {{PLURAL:$1|1 bet|$1 bet}} bar.",
        "wlheader-enotif": "E-mail arqalı eskertiw qosılg'an.",
+       "wlnote": "To'mende aqırg'ı {{PLURAL:$2|saattag'ı|'''$2''' saattag'ı}} {{PLURAL:$1|aqırg'ı o'zgeris bar|aqırg'ı '''$1''' o'zgeris bar}}.",
        "wlshowlast": "Aqırg'ı $1 saat, $2 ku'n, $3 ko'rset",
        "watchlist-options": "Baqlaw diziminin' sazlawları",
        "watching": "Baqlaw...",
index acd010c..256af44 100644 (file)
        "talkpagelinktext": "Mmeslay",
        "specialpage": "Asebter uslig",
        "personaltools": "Dduzan inu",
-       "postcomment": "Azen awennit",
        "articlepage": "Ẓer ayen yellan deg usebter",
        "talk": "Amyannan",
        "views": "Tuẓrin",
        "externaldberror": "Yella ugul aberrani n database neɣ ur tettalaseḍ ara ad tbeddleḍ isem an wemseqdac aberrani inek.",
        "login": "Kcem",
        "nav-login-createaccount": "Kcem / Xleq isem n wemseqdac",
-       "loginprompt": "Yessefk ad teǧǧiḍ ikukiyen (cookies) iwakken ad tkecmeḍ ar {{SITENAME}}.",
        "userlogin": "Kcem / Xleq isem n wemseqdac",
        "userloginnocreate": "Qqen",
        "logout": "Ffeɣ",
        "searchprofile-advanced-tooltip": "Fren ideggen n isemawen i unadi",
        "search-result-size": "$1 ({{PLURAL:$2|1 awal|$2 awalen}})",
        "search-result-category-size": "$1 {{PLURAL:$1|amseqdac|imseqdacen}} $2 ({{PLURAL:$2|adu-taggayt|adu-tiggayin}}, $3 {{PLURAL:$3|afaylu|ifuyla}})",
-       "search-result-score": "Taflest : $1%",
        "search-redirect": "(asemmimeḍ $1)",
        "search-section": "(tigezmi $1)",
        "search-file-match": "(yzega i ugbur n ufaylu)",
        "uploadwarning": "Aɣtal deg wazan n ufayluwen",
        "uploadwarning-text": "Beddel aglam n ufaylu dɣa ɛreḍ tikkelt nniḍen",
        "savefile": "Smekti afaylu",
-       "uploadedimage": "\"[[$1]]\" yettwazen",
-       "overwroteimage": "yekter lqem amaynut n « [[$1]] »",
        "uploaddisabled": "Suref-aɣ, azen n ufayluwen yettwakkes",
        "copyuploaddisabled": "Taktert n ufaylu s URL yensan.",
        "uploaddisabledtext": "Azen n ifuyla yettwakkes deg wiki agi.",
        "watchlist-details": "ttɛassaɣ {{PLURAL:$1|$1 usebter|$1 n isebtaren}} mebla isebtaren \"amyannan\".",
        "wlheader-enotif": "Talɣut s email yessermed.",
        "wlheader-showupdated": "Isebtar ttubeddlen segwasmi tkecmeḍ tikelt taneggarut ttbanen-d s uḍris '''aberbuz'''.",
-       "wlnote2": "Ddaw agi ibeddilen deg {{PLURAL:$1|asrag aneggaru|<strong>$1</strong> isragen ineggura}}, seg $2, $3.",
+       "wlnote": "Ddaw agi  {{PLURAL:$1|yella abeddel aneggaru|llan '''$1''' ibeddilen ineggura}} n {{PLURAL:$2|usrag aneggaru|'''$2''' isragen ineggura}}, seg $3 af $4.",
        "wlshowlast": "Ssken $1 n swayeɛ $2 n wussan neɣ $3 ineggura",
        "watchlist-options": "Tifranin n umuɣ n uɛessi",
        "watching": "Ad iɛass...",
        "duplicate-defaultsort": "Ɣur-wet : tasarut n ufran m-ulac « $2 » atsefεej tasarut n uqbel « $1 ».",
        "version": "Lqem",
        "version-extensions": "Isiɣzaf i serkeben",
+       "version-skins": "Igelman",
        "version-specialpages": "isebtar usligen",
        "version-parserhooks": "Imguden n umsisleḍ n taseddast",
        "version-variables": "Imuttiyen",
        "version-antispam": "Aḥezzeb n spam",
-       "version-skins": "Igelman",
        "version-other": "Nniḍen",
        "version-mediahandlers": "Amsqerdec n imediaten",
        "version-hooks": "Imguden",
index 0ccb278..29f6f2e 100644 (file)
        "talkpagelinktext": "Тепсэлъыхьыгъуэ",
        "specialpage": "Лэжыгъэ напэкӀуэцӀ",
        "personaltools": "Уи Ӏэмэпсымэхэр",
-       "postcomment": "ЛъэныкъуэщӀэ",
        "articlepage": "Тхыгъэм хэплъэн",
        "talk": "Тепсэлъэхьыгъуэ",
        "views": "Зыхэплъахэр",
        "externaldberror": "Щэуэгъуэ хъуа, аутентификациэ щекӀуэкӀым иэ апхуэдиз пӀалъэ уиӀу щыткъым, уи нэкугъуэ аккаунтыр зэпхъуэкӀын.",
        "login": "Системэм зыкъегъэцIыхуын",
        "nav-login-createaccount": "Ихьэн/щӀэуэ зитхэн",
-       "loginprompt": "«Cookies» уиӀэн хуэй, системэм уихьэн щхьэкӀэ.",
        "userlogin": "Ихьэн/зыхэтхэн",
        "userloginnocreate": "Системэм зыкъегъэцӀыхуын",
        "logout": "ИкӀыжын",
        "upload": "Файл илъхьэн",
        "uploadnologin": "Системэм зыкъебгъэцӀыхуакъым",
        "uploadlogpage": "Иралъхьахэм и тхыдэ-тхылъыр",
-       "uploadedimage": "изылъхьар \"[[$1]]\"",
        "filehist": "Файлым и тхыдэ",
        "filehist-help": "Махуэ/зэманым текъузэ файлыр дэпщэщ дэуэду щытами уеплъынумэ",
        "filehist-current": "иджырер",
index 9a5181c..f9976fa 100644 (file)
        "talkpagelinktext": "مشقولگی",
        "specialpage": "خصوصی صفحہ",
        "personaltools": "ذاتی سماند",
-       "postcomment": "پروشٹیو حصّہ",
        "articlepage": "مندرجاتی صفحہو لوڑے",
        "talk": "تبادلہٴ خیال",
        "views": "خیالات",
        "externaldberror": "یا تھے توثیقی ڈیٹابیسا خطا واقع بیتی شیر یا تتے بیریو کھاتو بتاریخ کوریکو اِجازت نیکی",
        "login": "داخل بوس",
        "nav-login-createaccount": "کھاتہ کھولاو کورے یا اندراج کورے",
-       "loginprompt": "{{SITENAME}} کھوار ویکیپیڈیا داخلو بچے تہ سوم پاسورڈ بیک ضروری شیر",
        "userlogin": "کھاتہ ساوزاوے یا اندراج کورے",
        "userloginnocreate": "داخل نوشتہ بوس",
        "logout": "لاگ آوٹ",
        "uploadlogpage": "نوشتۂ زبراثقال (اپ لوڈ لاگ)",
        "filename": "فایلو نام",
        "filedesc": "خلاصہ",
-       "uploadedimage": "زبراثقال (اپ لوڈ) براۓ \"[[$1]]\"",
        "license": "لایسنس",
        "license-header": "لایسنسنگ",
        "file-anchor-link": "فایل",
index 7006a1e..4b2bf84 100644 (file)
        "filesource": "Çıme:",
        "empty-file": "Dosya ke ti şawit veng biy.",
        "savefile": "Dosya qeyd ke",
-       "uploadedimage": "\"[[$1]]\" bar bi",
        "upload-source": "Dosya çımey",
        "sourcefilename": "Namê dosya çımey:",
        "watchthisupload": "Na dosya de şêr ke",
index 97df37b..e70e9c8 100644 (file)
        "talkpagelinktext": "تالقىلاۋى",
        "specialpage": "ارنايى بەت",
        "personaltools": "جەكە قۇرالدار",
-       "postcomment": "ماندەمە جونەلتۋ",
        "articlepage": "ماعلۇمات بەتىن قاراۋ",
        "talk": "تالقىلاۋ",
        "views": "كورىنىس",
        "externaldberror": "وسى ارادا نە شەتتىك راستاۋ دەرەكقورىندا قاتە بولدى, نەمەسە شەتتىك تىركەلگىڭىزدى جاڭالاۋ رۇقساتى جوق.",
        "login": "كىرۋ",
        "nav-login-createaccount": "كىرۋ / تىركەلگى جاساۋ",
-       "loginprompt": "{{SITENAME}} تورابىنا كىرۋىڭىز ٴۇشىن «cookies» قوسىلۋى ٴجون.",
        "userlogin": "كىرۋ / تىركەلگى جاساۋ",
        "logout": "شىعۋ",
        "userlogout": "شىعۋ",
        "nextn": "كەلەسى {{PLURAL:$1|$1}}",
        "viewprevnext": "كورسەتىلۋى: ($1 {{int:pipe-separator}} $2) ($3) جازبا",
        "search-result-size": "$1 ($2 ٴسوز)",
-       "search-result-score": "اراقاتىناستىلىعى: $1 %",
        "search-redirect": "(ايداعىش $1)",
        "search-section": "(ٴبولىم $1)",
        "search-suggest": "بۇنى ىزدەدىڭىز بە: $1",
        "file-exists-duplicate": "بۇل فايل كەلەسى {{PLURAL:$1|فايلدىڭ|فايلدارىنىڭ}} تەلنۇسقاسى:",
        "uploadwarning": "قوتارىپ بەرۋ جونىندە قۇلاقتاندىرۋ",
        "savefile": "فايلدى ساقتاۋ",
-       "uploadedimage": "«[[$1]]» فايلىن قوتارىپ بەردى",
-       "overwroteimage": "«[[$1]]» فايلىننىڭ جاڭا نۇسقاسىن قوتارىپ بەردى",
        "uploaddisabled": "قوتارىپ بەرۋ وشىرىلگەن",
        "uploaddisabledtext": "{{SITENAME}} جوباسىندا فايل قوتارىپ بەرۋى وشىرىلگەن.",
        "uploadscripted": "بۇل فايلدا ۆەب شولعىشتى قاتەلىكپەن تالداتقىزاتىن HTML نە ٴامىر كودى بار.",
        "watchlist-details": "تالقىلاۋ بەتتەرىن ساناماعاندا $1 بەت باقلانىلادى.",
        "wlheader-enotif": "ەسكەرتۋ حات جىبەرۋى قوسىلعان.",
        "wlheader-showupdated": "سوڭعى كەلىپ-كەتۋىڭىزدەن بەرى وزگەرتىلگەن بەتتەردى '''جۋان''' قارىپىمەن كورسەت",
+       "wlnote": "تومەندە سوڭعى {{PLURAL:$2|ساعاتتا|'''$2''' ساعاتتا}} بولعان, {{PLURAL:$1|جۋىقتاعى وزگەرىس|جۋىقتاعى '''$1''' وزگەرىس}} كورسەتىلەدى.",
        "wlshowlast": "سوڭعى $1 ساعاتتاعى, $2 كۇندەگى, $3 بولعان وزگەرىستى كورسەتۋ",
        "watching": "باقىلاۋدا…",
        "unwatching": "باقىلاماۋدا…",
index 6046b72..3bc0cc0 100644 (file)
        "pageinfo-toolboxlink": "Бұл бет туралы мәлімет",
        "pageinfo-redirectsto": "Айдатылғандар",
        "pageinfo-redirectsto-info": "Информация",
+       "pageinfo-contentpage": "Контент бетке санала ма?",
        "pageinfo-contentpage-yes": "Иә",
        "pageinfo-protect-cascading": "Баулы қорғаулылар мұнда",
        "pageinfo-protect-cascading-yes": "Иә",
index cbec7b2..a3a4cd8 100644 (file)
        "talkpagelinktext": "Talqılawı",
        "specialpage": "Arnaýı bet",
        "personaltools": "Jeke quraldar",
-       "postcomment": "Mändeme jöneltw",
        "articlepage": "Mağlumat betin qaraw",
        "talk": "Talqılaw",
        "views": "Körinis",
        "externaldberror": "Osı arada ne şettik rastaw derekqorında qate boldı, nemese şettik tirkelgiñizdi jañalaw ruqsatı joq.",
        "login": "Kirw",
        "nav-login-createaccount": "Kirw / Tirkelgi jasaw",
-       "loginprompt": "{{SITENAME}} torabına kirwiñiz üşin «cookies» qosılwı jön.",
        "userlogin": "Kirw / Tirkelgi jasaw",
        "logout": "Şığw",
        "userlogout": "Şığw",
        "nextn": "kelesi {{PLURAL:$1|$1}}",
        "viewprevnext": "Körsetilwi: ($1 {{int:pipe-separator}} $2) ($3) jazba",
        "search-result-size": "$1 ($2 söz)",
-       "search-result-score": "Araqatınastılığı: $1 %",
        "search-redirect": "(aýdağış $1)",
        "search-section": "(bölim $1)",
        "search-suggest": "Bunı izdediñiz be: $1",
        "file-exists-duplicate": "Bul faýl kelesi {{PLURAL:$1|faýldıñ|faýldarınıñ}} telnusqası:",
        "uploadwarning": "Qotarıp berw jöninde qulaqtandırw",
        "savefile": "Faýldı saqtaw",
-       "uploadedimage": "«[[$1]]» faýlın qotarıp berdi",
-       "overwroteimage": "«[[$1]]» faýlınnıñ jaña nusqasın qotarıp berdi",
        "uploaddisabled": "Qotarıp berw öşirilgen",
        "uploaddisabledtext": "{{SITENAME}} jobasında faýl qotarıp berwi öşirilgen.",
        "uploadscripted": "Bul faýlda veb şolğıştı qatelikpen taldatqızatın HTML ne ämir kodı bar.",
        "watchlist-details": "Talqılaw betterin sanamağanda $1 bet baqlanıladı.",
        "wlheader-enotif": "Eskertw xat jiberwi qosılğan.",
        "wlheader-showupdated": "Soñğı kelip-ketwiñizden beri özgertilgen betterdi '''jwan''' qaripimen körset",
+       "wlnote": "Tömende soñğı {{PLURAL:$2|sağatta|'''$2''' sağatta}} bolğan, {{PLURAL:$1|jwıqtağı özgeris|jwıqtağı '''$1''' özgeris}} körsetiledi.",
        "wlshowlast": "Soñğı $1 sağattağı, $2 kündegi, $3 bolğan özgeristi körsetw",
        "watching": "Baqılawda…",
        "unwatching": "Baqılamawda…",
index c6a3dc8..1c97771 100644 (file)
        "talkpagelinktext": "ការពិភាក្សា",
        "specialpage": "ទំព័រពិសេស",
        "personaltools": "ឧបករណ៍ផ្ទាល់ខ្លួន",
-       "postcomment": "ផ្នែកថ្មី",
        "articlepage": "មើលខ្លឹមសារទំព័រ​",
        "talk": "ការពិភាក្សា",
        "views": "គំហើញ",
        "externaldberror": "មាន​​បញ្ហាក្នុងការ​បញ្ជាក់​ផ្ទៀង​ផ្ទាត់​​មូលដ្ឋាន​ទិន្នន័យ​ ឬ​អ្នក​មិន​ត្រូវ​បាន​អនុញ្ញាត​ឲ្យ​បន្ទាន់​សម័យ​គណនី​ខាង​ក្រៅ​របស់​អ្នក​។​\n​",
        "login": "កត់ឈ្មោះចូល",
        "nav-login-createaccount": "កត់ឈ្មោះចូលឬបង្កើតគណនី",
-       "loginprompt": "អ្នក​ត្រូវតែ​មាន​ខូគី ដើម្បី​អាច​កត់ឈ្មោះចូល​{{SITENAME}}បាន។",
        "userlogin": "កត់ឈ្មោះចូលឬបង្កើតគណនី",
        "userloginnocreate": "កត់ឈ្មោះចូល",
        "logout": "កត់ឈ្មោះចេញ",
        "searchprofile-advanced-tooltip": "ស្វែងរកក្នុងប្រភេទកំណត់ដោយអ្នកប្រើប្រាស់",
        "search-result-size": "$1({{PLURAL:$2|១ពាក្យ|$2ពាក្យ}})",
        "search-result-category-size": "{{PLURAL:$1|សមាជិកម្នាក់|សមាជិក$1នាក់}} ({{PLURAL:$2|កូនចំណាត់ថ្នាក់ក្រុម១|$2 កូនចំណាត់ថ្នាក់ក្រុម}}, {{PLURAL:$3|1 ឯកសារ|$3 ឯកសារ}})",
-       "search-result-score": "កម្រិតទាក់ទិន៖ $1%",
        "search-redirect": "(បញ្ជូនបន្ត $1)",
        "search-section": "(ផ្នែក $1)",
        "search-suggest": "ប្រហែលជាអ្នកចង់រក៖ $1",
        "uploadwarning": "ប្រយ័ត្ន",
        "uploadwarning-text": "សូមកែការពិពណ៌នារបស់ឯកសារខាងក្រោម រួចសាកល្បងម្ដងទៀត។",
        "savefile": "រក្សាឯកសារទុក",
-       "uploadedimage": "បានផ្ទុកឡើង \"[[$1]]\"",
-       "overwroteimage": "បានផ្ទុកឡើងកំណែថ្មីរបស់\"[[$1]]\"",
        "uploaddisabled": "មិនអនុញ្ញាតអោយផ្ទុកឯកសារឡើង",
        "copyuploaddisabled": "មានអោយប្រើការផ្ទុកឡើងដោយ URL។",
        "uploaddisabledtext": "ការផ្ទុកឯកសារ​ឡើង​គឺ​មិន​ត្រូវបាន​អនុញ្ញាត​ទេ​។",
        "watchlist-details": "{{PLURAL:$1|$1 page|ទំព័រ $1}}នៅក្នុងបញ្ជីតាមដានរបស់អ្នក ដោយមិនរាប់បញ្ចូលទំព័រពិភាក្សា។",
        "wlheader-enotif": "បើកប្រើការផ្ដល់ដំណឹងតាមរយៈអ៊ីមែល។",
        "wlheader-showupdated": "ទំព័រដែលត្រូវបានផ្លាស់ប្តូរតាំងពីពេលចូលមើលចុងក្រោយរបស់អ្នក ត្រូវបានបង្ហាញជា '''អក្សរដិត'''។",
+       "wlnote": "ខាងក្រោមនេះជា {{PLURAL:$1|បំលាស់ប្តូរចុងក្រោយ|'''$1'''បំលាស់ប្តូរចុងក្រោយ}}ក្នុងរយះពេល{{PLURAL:$2|'''$2'''ម៉ោង}}ចុងក្រោយ គិតចាប់ពី $3, $4។",
        "wlshowlast": "បង្ហាញ $1ម៉ោងចុងក្រោយ $2ថ្ងៃចុងក្រោយ ឬ$3",
        "watchlist-options": "ជម្រើសនានាក្នុងបញ្ជីតាមដាន",
        "watching": "កំពុង​តាមដាន...",
        "unknown_extension_tag": "ស្លាក​នៃផ្នែកបន្ថែម \"$1\" មិនស្គាល់",
        "version": "កំណែ",
        "version-extensions": "ផ្នែកបន្ថែមដែលបានដំឡើង",
+       "version-skins": "សំបក",
        "version-specialpages": "ទំព័រពិសេសៗ",
        "version-variables": "អថេរ",
        "version-antispam": "ការបង្ការស្ប៉ាម",
-       "version-skins": "សំបក",
        "version-other": "ផ្សេង",
        "version-mediahandlers": "កម្មវិធី​បើក​មេឌា​ (Media handlers)",
        "version-hook-name": "ឈ្មោះ​ Hook",
index cbd849c..675808c 100644 (file)
        "talkpagelinktext": "ಚರ್ಚೆ",
        "specialpage": "ವಿಶೇಷ ಪುಟ",
        "personaltools": "ವೈಯಕ್ತಿಕ ಉಪಕರಣಗಳು",
-       "postcomment": "ಹೊಸ ವಿಭಾಗ",
        "articlepage": "ಲೇಖನ ಪುಟವನ್ನು ವೀಕ್ಷಿಸಿ",
        "talk": "ಚರ್ಚೆ",
        "views": "ನೋಟಗಳು",
        "password-change-forbidden": "ನೀವು ಈ ವಿಕಿಯಲ್ಲಿ ಪ್ರವೇಶಪದವನ್ನು ಬದಲಾಯಿಸಲು ಸಾದ್ಯವಿಲ್ಲ.",
        "login": "ಲಾಗ್ ಇನ್",
        "nav-login-createaccount": "ಲಾಗ್ ಇನ್ - log in",
-       "loginprompt": "{{SITENAME}} ತಾಣಕ್ಕೆ ಲಾಗ್ ಇನ್ ಆಗಲು ನಿಮ್ಮ ಗಣಕಯಂತ್ರದಲ್ಲಿ ಕುಕೀ (cookie) ಸೌಲಭ್ಯವಿರಬೇಕು.",
        "userlogin": "ಲಾಗ್ ಇನ್ - log in",
        "userloginnocreate": "ಲಾಗ್ ಇನ್",
        "logout": "ಲಾಗ್ ಔಟ್",
        "searchprofile-everything-tooltip": "ಹುದುಕಿ ಯಲ ಸುಮನು (ಇಥಿಯದಿ ಮಾಥು ಹಲೆ)",
        "searchprofile-advanced-tooltip": "ಹುಧುಕಿ ನಮ ಜಾಗ ಹೆಸರುಸ್ತಲ್ಲ",
        "search-result-size": "$1 ({{PLURAL:$2|೧ ಪದ|$2 ಪದಗಳು}})",
-       "search-result-score": "ಸಂಬದ್ಧತೆ: $1%",
        "search-redirect": "(ಪುನರ್ನಿರ್ದೇಶನ $1)",
        "search-section": "(ವಿಭಾಗ $1)",
        "search-suggest": "ನೀವು ಇದನ್ನು ಹುಡುಕುತ್ತಿರುವಿರೆ: $1",
        "fileexists-shared-forbidden": "ಆ ಹೆಸರಿನಲ್ಲಿ ಫೈಲೊಂದು ಸಾಮೂಹಿಕ ಫೈಲಿನ ಆಗರದಲ್ಲಿ ಆಗಲೆ ಇದೆ;\nದಯವಿಟ್ಟು ಹಿಂದಕ್ಕೆ ಹೋಗಿ ಈ ಫೈಲನ್ನು ಹೊಸ ಹೆಸರಿನಲ್ಲಿ ಅಪ್ಲೋಡ್ ಮಾಡಿ. [[File:$1|thumb|center|$1]]",
        "uploadwarning": "ಅಪ್ಲೋಡ್ ಎಚ್ಚರಿಕೆ",
        "savefile": "ಕಡತವನ್ನು ಉಳಿಸಿ",
-       "uploadedimage": "\"[[$1]]\" ಅಪ್ಲೋಡ್ ಆಯಿತು",
-       "overwroteimage": "\"[[$1]]\" ಫೈಲಿನ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಲಾಯಿತು",
        "uploaddisabled": "ಅಪ್ಲೋಡ್‍ಗಳು ನಿರ್ಬಂಧಿತವಾಗಿದೆ",
        "uploaddisabledtext": "{{SITENAME}} ತಾಣದಲ್ಲಿ ಫೈಲುಗಳ ಅಪ್ಲೋಡ್ ಮಾಡುವಿಕೆ ತಡೆಗಟ್ಟಲ್ಪಟ್ಟಿದೆ.",
        "uploadvirus": "ಈ ಫೈಲಿನಲ್ಲಿ ಒಂದು ವೈರಸ್ ಇದೆ! ಮಾಹಿತಿ: $1",
index 9df747a..4cded69 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Enye Lav",
-                       "Yufereff"
+                       "Yufereff",
+                       "아라"
                ]
        },
        "underline-always": "Пыр",
@@ -85,8 +86,6 @@
        "qbmyoptions": "Листбоккезö",
        "faq": "Отир сё юасьö",
        "faqpage": "Project:отир сё юасьö",
-       "vector-action-delete": "Чышкыны",
-       "vector-view-view": "Лыддьöтны",
        "variants": "Варианттэз",
        "errorpagetitle": "Сорасьöм",
        "returnto": "Бертны $1-öдз.",
        "talkpagelinktext": "Сёрнитан",
        "specialpage": "Тодильнöй листбок",
        "personaltools": "Аслат керöтаннэз",
-       "postcomment": "Виль юкöт",
        "talk": "Сёрни",
        "views": "Видзöтöммез",
        "toolbox": "Керöтаннэз",
        "viewprevnext": "Видзöтны ($1 {{int:pipe-separator}} $2) ($3)",
        "searchprofile-everything": "Быдлаись",
        "searchprofile-articles-tooltip": "Кошшан $1ын",
-       "searchprofile-project-tooltip": "Кошшан $1ын",
        "search-result-size": "$1 ({{PLURAL:$2|1=1 кыв|$2 кыв}})",
        "search-redirect": "(иньдöтöм $1 вылiсь)",
        "search-section": "(юкöт № $1)",
        "searchall": "быдöс",
        "powersearch-legend": "Паськытжыка кошшан",
        "powersearch-ns": "Ним чукöррезiсь кошшан:",
-       "powersearch-redir": "Мöдлаö иньдöтöммез ним сьöртi",
        "powersearch-toggleall": "Быдöс",
        "powersearch-togglenone": "Нем",
        "preferences": "Лöсьöтаннэз",
        "timezoneregion-pacific": "Лöнь океан",
        "youremail": "Электрон пошта:",
        "username": "Уджкерисьлöн ним:",
-       "uid": "Уджкерисьлöн лыддьöса пас:",
        "yourrealname": "Быльнöй нимыт:",
        "yourlanguage": "Кыв:",
        "yournick": "Виль кырымпас:",
        "recentchanges": "Медбöрья вильмöтöммез",
        "recentchanges-legend": "Медбöрья вильмöтöммез понда лöсьöтаннэз",
        "recentchanges-feed-description": "Синмавны медбöрья вильмöтöммез этiя вики визылын.",
-       "rclistfrom": "Мыччавны вильмöтöмсö  $1-сянь",
+       "rclistfrom": "Мыччавны вильмöтöмсö  $3 $2-сянь",
        "rcshowhideminor": "$1 невунка мöдкöдьсьöтыштöм",
        "rcshowhidebots": "$1 бот",
        "rcshowhideliu": "Ас нимöн $1 уджкерись",
        "recentchangeslinked-to": "Мыччавны мöдкодьсьöтöммез листбоккез вылын, кöдна асьныс ыстiсьöны этiя листбок вылö",
        "upload": "Кышавны файл",
        "uploadlogpage": "Тöбалöм сьöртi журнал",
-       "uploadedimage": "тöбалiс ''[[$1]]''",
        "filehist": "Файллöн история",
        "filehist-help": "Нырышт дата/кад, мед адззыны, кытшöмöн сэк вöлi файлыс.",
        "filehist-current": "öння",
        "booksources-go": "Кошшыны",
        "log": "Журналлэз",
        "allpages": "Быдöс листбоккез",
-       "alphaindexline": "$1-сянь $2-дынö",
        "prevpage": "Одзжыкся листбок ($1)",
        "allpagesfrom": "Мыччавны листбоккез, кöдна пондöтчöны сiдз:",
        "allpagesto": "Мыччавны листбоккез татшöмöдз:",
index fdd1d4e..d027276 100644 (file)
        "talkpagelinktext": "сюзюу",
        "specialpage": "Къуллукъ бет",
        "personaltools": "Энчи адырла",
-       "postcomment": "Джангы бёлюм",
        "articlepage": "Статьягъа къарау",
        "talk": "Сюзюу",
        "views": "Къараула",
        "externaldberror": "Тыш информация базаны болушлугъу бла аутентификация, халатлы болду, неда тыш аккаунтугъузну тюрлендирирге хакъларагъыз джетмейди.",
        "login": "Системагъа кириу",
        "nav-login-createaccount": "Системагъа кириу / Аккаунт къурау",
-       "loginprompt": "{{SITENAME}} сайтха кирир ючюн «cookies» эркин этерге керексиз.",
        "userlogin": "Кир / регистрация эт",
        "userloginnocreate": "Кириу",
        "logout": "Чыгъыу",
        "searchprofile-advanced-tooltip": "Энчи ат аланладада изле",
        "search-result-size": "$1 ({{PLURAL:$2|1 сёз|$2 сёз}})",
        "search-result-category-size": "{{PLURAL:$1|1=1 элемент|$1 элемент}} ({{PLURAL:$2|1=1 тюбкатегория|$2 тюбкатегория}}, {{PLURAL:$3|1=1 файл|$3 файл}})",
-       "search-result-score": "Келишиулюк: $1%",
        "search-redirect": "(Джиберилиниу $1)",
        "search-section": "($1 бёлюм)",
        "search-file-match": "(файлны ичиндегиси бла бирди)",
        "uploadwarning": "Эсгертиу",
        "uploadwarning-text": "Файлны тюбюрекде келтирилген ачыкълауун тюрлендиригиз да джангыдан кёрюгюз.",
        "savefile": "Файлны сакълат",
-       "uploadedimage": "«[[$1]]» джюкленнгенди",
-       "overwroteimage": "«[[$1]]» суратны джангы версиясы джюкленнгенди",
        "uploaddisabled": "Джюклеуге эркинлик джокъду",
        "copyuploaddisabled": "URL кёре джюклеу джукъланыбды.",
        "uploaddisabledtext": "Файлланы джюклеу мадар джукъланыбды",
        "watchlist-details": "Кёздеги тизмегизде сюзюу бетлери саналмай {{PLURAL:$1|бет|бет}} барды.",
        "wlheader-enotif": "E-mail бла хапар бериу джандырылыбды.",
        "wlheader-showupdated": "Ахыр кириуюгюзден сора бетни тюрлениулери '''къалын''' джазыу бла кёргюзюлгенди.",
-       "wlnote2": "Тюбюнде, ахыр {{PLURAL:$1|сагъатны|<strong>$1</strong> сагъатны}} ичинден этилген тюрлениуле кёрюнедиле, $2, $3 заманда болумгъа кёре.",
+       "wlnote": "Тюбюндеди кёргюзюлгенди: ахыр '''$2''' сагъатха этилген ахыр '''$1''' тюрлениу, $3 $4 заманнга дери.",
        "wlshowlast": "Арт $1 сагъат $2 кюннге $3 кёргюз",
        "watchlist-options": "Кёзде тургъан тизмени джарашдырыулары",
        "watching": "Кёзде тургъан тизмеге къошуу...",
index 794bfbc..5cb828e 100644 (file)
@@ -6,8 +6,35 @@
                        "Protostar"
                ]
        },
+       "tog-underline": "Link ùndarlaintin",
        "tog-hideminor": "Haid dhi lili chenjdèm na dhi resènt chenj list",
+       "tog-hidepatrolled": "Haid patrol èditdèm na risènt chenjdèm",
+       "tog-newpageshidepatrolled": "Haid patrol pejdèm na dhi nyu pej list",
        "tog-extendwatchlist": "Èkspand dhi wachlist fòr show òll dhi chenjdèm,  pas dhi resènt chenjdèm nòmòr",
+       "tog-usenewrc": "Grup chenjdèm bay pej na dhi risènt chenj wachlist",
+       "tog-numberheadings": "Auto-nùmbar hedtindèm",
+       "tog-showtoolbar": "Show dhi èdit tulbar",
+       "tog-editondblclick": "Èdit pejdèm with tutèm klik",
+       "tog-editsectiononrightclick": "Ebul sèkshòn èdit whe yu raiht klik pan sèkshòn tituldèm",
+       "tog-watchcreations": "Add pejdèm whe a kreat èn faildèm whe a ùplod tu mi wachlist",
+       "tog-watchdefault": "Add pejdèm èn faildèm whe a èdit tu mi wachlist.",
+       "tog-watchmoves": "Add dhi pejdèm we a muf go mi wachlist",
+       "tog-watchdeletion": "Add dhi pejdèm èn faildèm we a delet go mi wachlist",
+       "tog-minordefault": "Mark òll èditdèm lèkkè minòr bay default",
+       "tog-previewontop": "Show prevyu bifor èdit bòks",
+       "tog-previewonfirst": "Show prevyu we dhi fùrs èdit dòn",
+       "tog-enotifwatchlistpages": "Sèn mi e-mel wan pej òr fail na mi wachlist chenj",
+       "tog-enotifusertalkpages": "Sèn mi e-mel whe mi yuzar tòk pej chenj",
+       "tog-enotifminoredits": "Sèn mi e-mel fòr minòr pej èn fail èditdèm",
+       "tog-enotifrevealaddr": "Show mi e-mel addrèss na mi notifakshòn e-meldèm",
+       "tog-shownumberswatching": "Show dhi nùmbàr dhi yuzardèm we de wach",
+       "tog-oldsig": "Signatura we èksist",
+       "tog-fancysig": "Trit signatura lèkkè wikitext (withaut automatik link)",
+       "tog-uselivepreview": "Yuz laive prevyu (èkspèrimèntlèkk)",
+       "tog-forceeditsummary": "Tèllmi we a de èntar blank èdit sùmmari",
+       "tog-watchlisthideown": "Haid mi èditdèm kòmòt mi wachlist",
+       "tog-watchlisthidebots": "Haid bòtèdit kòmòt dhi wachlist",
+       "tog-watchlisthideminor": "Haid minòr èditdèn kòmòt dhi wachlist",
        "sunday": "Sandey",
        "monday": "Mundey",
        "tuesday": "Tyrdey",
        "navigation": "Navigatio",
        "qbedit": "Èdit",
        "faq": "Kwèstiòn dèndeaks bòku",
-       "faqpage": "Projèkt:Kuèstiòndèm we òllman de ask",
-       "vector-action-addsection": "Add tòpik",
-       "vector-action-delete": "Delet",
-       "vector-action-move": "Muf",
-       "vector-action-protect": "Protèkt",
-       "vector-view-create": "Kreat",
-       "vector-view-edit": "Chenj",
-       "vector-view-history": "Luk historia",
-       "vector-view-view": "Rid",
-       "vector-view-viewsource": "Luk dhi sòrs",
+       "faqpage": "Project:Kuèstiòndèm we de ask bòku",
        "actions": "Actiòndèm",
        "namespaces": "Nemspasiodèm",
        "variants": "Variantdèm",
        "talkpagelinktext": "Tòk",
        "specialpage": "Spèsial Pej",
        "personaltools": "Pèrsònal tuldèm",
-       "postcomment": "Nyu sèktiòn",
        "articlepage": "Luk kòntènt pej",
        "talk": "Diskùssiòn",
        "views": "Vyudèm",
        "jumptosearch": "Luk fòr",
        "aboutsite": "Na bòt {{SITENAME}}",
        "aboutpage": "Project:Na bòt",
-       "copyright": "Dis kontent de onda $1 .",
+       "copyright": "Dhis kòntènt avelebul ùndar $1 .",
        "currentevents": "Kùrrènt evèntdèm",
        "currentevents-url": "Project:Kùrrènt evèntdèm",
        "disclaimers": "Disklamardèm",
        "yourpasswordagain": "Retayp passwòrd",
        "login": "Lògin",
        "nav-login-createaccount": "Lògin / Mek yu yon akkaunt",
-       "loginprompt": "Yu gèt fòde yuz kukidèm fòr ebul fòrlogin {{SITENAME}}.",
        "userlogin": "Lògin / Mek yu yon akkaunt",
        "logout": "Lògòt",
        "userlogout": "Lògòt",
        "createaccount": "Kreat yu yon akkaunt",
        "gotaccount": "Yu dòn mek yu akkaunt? '''$1'''.",
        "gotaccountlink": "Lògin",
-       "createaccountmail": "wit imel",
+       "createaccountmail": "Yuz shòrttèm randòm passwòrd èn sèn am go dhi imel address we spesifay",
        "badretype": "Dhi passwòrddèm we yu taip nò mach.",
        "userexists": "Odhar pòrsin de yuz dha yuzmannem.\nYu go gèt fòr pik differènt wan.",
        "mailmypassword": "Resèt passwòrd",
        "savearticle": "Sev dis pej",
        "preview": "Prevyu",
        "showpreview": "Luk dhi prevyu",
-       "showlivepreview": "Luk dhi laiv prevyu",
        "showdiff": "Sho wetin dòn chenj",
        "anoneditwarning": "'''Tek tèm o:''' Yu nò lògin yet.\nSo dèn go sev yu IP addrèss na dhi pejim èdithistoria",
        "missingsummary": "'''Mèmbar se:''' yu nò mek èditsùmmari.\nIf yu prèss sev bak, dhèm go sev yu èdit nòmor.",
        "shown-title": "Show $1 {{PLURAL:$1|resùlt|resùltdèm}} fòr pej",
        "viewprevnext": "Vyu ($1 {{int:pipe-separator}} $2) ($3)",
        "searchprofile-articles": "Kòntèntpejdèm",
-       "searchprofile-project": "Hèp èn Protèkt pejdèm",
        "searchprofile-images": "Mùltimedia",
        "searchprofile-everything": "Òllthin",
        "searchprofile-advanced": "We advans",
        "searchprofile-articles-tooltip": "Sarch na $1",
-       "searchprofile-project-tooltip": "Sarch na $1",
        "searchprofile-images-tooltip": "Sarch fòr faildèm",
        "search-result-size": "$1 ({{PLURAL:$2|1 wòrd|$2 wòrddèm}})",
        "search-section": "(sèkshòn $1)",
        "search-nonefound": "Resùltdèm we mach dhi kweri nò de",
        "powersearch-legend": "Advanssarch",
        "powersearch-ns": "Sarch na nemspatiodèm:",
-       "powersearch-redir": "List de sèn yu go",
        "search-external": "Èksternal sarch",
        "searchdisabled": "{{websaitim nem}} Dhi sarch nò de work.\nNa dhi mintèm yuz Google fòr sarch.\nMèmbar se sòmtèm dhèm indèksdèm na {{SITENAME}}go dòn datòt.",
        "mypreferences": "Prèfèrèntiadèm",
        "searchresultshead": "Sarch",
        "youremail": "Emel:",
-       "username": "Yuzanem:",
+       "username": "Yuzmannem:",
        "yourrealname": "Real nem",
        "newuserlogpage": "Yuzman kreattin lòg",
        "action-edit": "èdit dhis pej",
        "booksources-go": "Go",
        "log": "Lògdèm",
        "allpages": "Òll pejdèm",
-       "alphaindexline": "$1 go $2",
        "allarticles": "Òll pejdèm",
        "allpagessubmit": "Go",
        "categories": "Katègòridèm",
index 65f2a50..07a1d75 100644 (file)
        "searchprofile-articles-tooltip": "Di $1 da lêbigere",
        "searchprofile-images-tooltip": "Li pelan bigere",
        "search-result-size": "$1 ({{PLURAL:$2|peyvek|$2 peyv}})",
-       "search-result-score": "Lêhatin: $1%",
        "search-redirect": "(beralîkirin $1)",
        "search-section": "(beş $1)",
        "search-suggest": "Gelo mebesta te ev bû: $1",
index 5461859..e8320d8 100644 (file)
        "talkpagelinktext": "keskows",
        "specialpage": "Folen arbennek",
        "personaltools": "Toulys personel",
-       "postcomment": "Tregh nowyth",
        "articlepage": "Gweles an folen",
        "talk": "Keskows",
        "views": "Gwelyansow",
        "password-change-forbidden": "Ny yllir chanjya geryow tremena war an wiki-ma.",
        "login": "Omgelmi",
        "nav-login-createaccount": "Omgelmi / Gwruthyl akont nowyth",
-       "loginprompt": "Res yw dhywgh galosegi cookies rag omgelmi orth {{SITENAME}}.",
        "userlogin": "Omgelmi / gwruthyl akont nowyth",
        "userloginnocreate": "Omgelmi",
        "logout": "Digelmi",
        "fileuploadsummary": "Berrskrif:",
        "filesource": "Pennfenten:",
        "savefile": "Gwitha restren",
-       "uploadedimage": "\"[[$1]]\" ughkergys",
        "watchthisupload": "Golya an folen-ma",
        "imgfile": "restren",
        "listfiles_date": "Dedhyans",
        "unwatch": "Diswolya",
        "watchlist-details": "Yma {{PLURAL:$1|$1 folen}} war agas rol wolya, marnas folennow keskows.",
        "wlheader-showupdated": "Yn '''tew''' y tiskwedhir folennow re beu chanjyes a-dhia agas vysytyans diwettha.",
+       "wlnote": "A-woles yma an {{PLURAL:$1|chanj diwettha|'''$1''' chanj diwettha}} y'n {{PLURAL:$2|our|'''$2''' our}} diwettha, a-dhia $3, $4.",
        "wlshowlast": "Diskwedhes an $1 our diwettha, an $2 dydh diwettha, po $3",
        "watchlist-options": "Etholyow an rol wolya",
        "watching": "Ow kolya...",
index a64f675..f3fb4ec 100644 (file)
        "talkpagelinktext": "Талкуулоо",
        "specialpage": "Кызматтык барак",
        "personaltools": "Жеке аспаптар",
-       "postcomment": "Жаңы бөлүм",
        "articlepage": "Макаланы кароо",
        "talk": "Талкуу",
        "views": "Көрсөтүүлөр",
        "externaldberror": "Маалымат базасында ката кетти же сизге сырткы эсебиңизди жаңыртууга уруксат берилген эмес.",
        "login": "Кирүү",
        "nav-login-createaccount": "Кирүү / Катталуу",
-       "loginprompt": "{{SITENAME}} сайтына кириш үчүн сиз «кукилерге» уруксат беришиңиз керек.",
        "userlogin": "Кирүү / Катталуу",
        "userloginnocreate": "Кирүү",
        "logout": "Чыгуу",
        "searchprofile-advanced-tooltip": "Белгиленген аталыш мейкиндиктеринде издөө",
        "search-result-size": "$1 ({{PLURAL:$2|1 сөз|$2 сөздөр}})",
        "search-result-category-size": "{{PLURAL:$1|1 мүчө|$1 мүчөлөр}} ({{PLURAL:$2|1 ички категория|$2 ички категориялар}}, {{PLURAL:$3|1 файл|$3 файлдар}})",
-       "search-result-score": "Релеванттуулук: $1%",
        "search-redirect": "($1 багыттама)",
        "search-section": "($1 бөлүмү)",
        "search-suggest": "Балким, издегениңиз бул: $1",
        "ignorewarnings": "Болгон эскертүүлөрдү этибар албоо",
        "filetype-banned-type": "'''\".$1\"''' {{PLURAL:$4|уруксат болбогон файл тиби|уруксат болбогон файл типтери}}.\nУруксат болгон {{PLURAL:$3|файл тиби|файл типтери}} $2.",
        "savefile": "Файлды сактоо",
-       "uploadedimage": "\"[[$1]]\" жүктөлдү",
        "upload-source": "Баштапкы файл",
        "sourcefilename": "Булактын файл аты:",
        "sourceurl": "Булактын URL-дареги:",
index c1e5ee6..db68ff1 100644 (file)
        "talkpagelinktext": "Messaje",
        "specialpage": "Hoja Especial",
        "personaltools": "Aparates personales",
-       "postcomment": "Capítůlo muevo",
        "articlepage": "Ver el artícůlo de contenido",
        "talk": "Diskusyón",
        "views": "Vistas",
        "password-change-forbidden": "No se puede kambiar contrasenyas en este viki.",
        "login": "Entrar",
        "nav-login-createaccount": "Entrar / criar un cuento",
-       "loginprompt": "Kale tener \"cookies\" aktivadas enel navegador para enrejistrarse en {{SITENAME}}",
        "userlogin": "Entrar / Criar cuento",
        "logout": "Salir",
        "userlogout": "Salir",
        "filesource": "Fuente:",
        "filename-tooshort": "El nombre del archivo es muy kurto.",
        "savefile": "Guardar archivo",
-       "uploadedimage": "suvió «[[$1]]»",
        "backend-fail-notexists": "El archivo $1 no egziste.",
        "backend-fail-alreadyexists": "El archivo \"$1\" ya egziste.",
        "img-auth-nofile": "El archivo \"$1\" no egziste.",
index 3ed3aa1..2894e7f 100644 (file)
        "mergehistory-go": "Weis déi Versiounen, déi zesummegeluecht kënne ginn",
        "mergehistory-submit": "Versioune verschmelzen",
        "mergehistory-empty": "Et kënne keng Versioune zesummegeluecht ginn.",
-       "mergehistory-success": "{{PLURAL:$3|1 Versioun gouf|$3 Versioune goufe}} vun [[:$1]] op [[:$2]] zesummegeluecht.",
+       "mergehistory-success": "{{PLURAL:$3|1 Versioun gouf|$3 Versioune goufe}} vu(n) [[:$1]] op [[:$2]] zesummegeluecht.",
        "mergehistory-fail": "Versiounszesummeleeung war net méiglech, kuckt w.e.g. d'Säiten an d'Zäit-Parameter no.",
        "mergehistory-no-source": "Originalsäit \"$1\" gëtt et net.",
        "mergehistory-no-destination": "Zilsäit \"$1\" gëtt et net.",
        "delete-edit-reasonlist": "Läschgrënn änneren",
        "delete-toobig": "Dës Säit huet e laangen Historique, méi wéi $1 {{PLURAL:$1|Versioun|Versiounen}}.\nD'Läsche vu sou Säite gouf limitéiert fir ongewollte Stéierungen op {{SITENAME}} ze verhënneren.",
        "delete-warning-toobig": "Dës Säit huet eng laang Versiounsgeschicht, méi wéi $1 {{PLURAL:$1|Versioun|Versiounen}}.\nD'Läschen dovu kann zu Stéierungen am Fonctionnement vun {{SITENAME}} féieren;\ndës Aktioun soll mat Virsiicht gemaach ginn.",
+       "delete-cantedit": "Dir däerft dës Säit net läsche well Dir net d'Recht hutt fir se z'änneren.",
        "deleting-backlinks-warning": "'''Opgepasst:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Aner Säite]] linken op déi Säit déi Dir am Gaang sidd ze läschen oder déi Säit Déi Dir am Gaang sidd ze läschen ass an aner Säiten agebonn.",
        "rollback": "Ännerungen zrécksetzen",
        "rollback_short": "Zrécksetzen",
index 3cbf19c..69b197c 100644 (file)
        "talkpagelinktext": "Рахун",
        "specialpage": "Куьмекчи ччин",
        "personaltools": "Кьилди вичин алатар",
-       "postcomment": "ЦӀйий пай",
        "articlepage": "Къене авайбурун ччиндиз килигун",
        "talk": "Веревирд авун",
        "views": "Килигунар",
        "yourdomainname": "Куь домен",
        "login": "Гьахьун",
        "nav-login-createaccount": "Гьахьун/аккаунт туькӀуьрун",
-       "loginprompt": "Системадиз гьахьун патал \"куки\" -яр куькӀуьрна кӀанзава",
        "userlogin": "Гьахьун/аккаунт туькӀуьрун",
        "userloginnocreate": "Гьахьун",
        "logout": "ЭкъечӀун",
        "filereuploadsummary": "Файлдин къене дегишвилер:",
        "filestatus": "Автордин ихтиярдин статус:",
        "filesource": "Чешме:",
-       "uploadedimage": "\"[[$1]]\" ппарна",
        "upload-source": "Чешмедин файл",
        "sourcefilename": "Чешмедин тир файлдин тIвар:",
        "sourceurl": "Чешмедин URL-адрес:",
        "watchlisttools-raw": "Текст хьиз дуьзар хъувун",
        "duplicate-defaultsort": "'''Дикъет:''' Авайд хьиз кьунвай жуьрейриз ччара авунин \"$2\" куьлег  виликан \"$1\" жуьрейриз ччара авунин куьлег гьич йийзва.",
        "version": "Жуьре",
-       "version-antispam": "Спамдин вилик пад атIун",
        "version-skins": "КЪайдадиз ттунин темаяр",
+       "version-antispam": "Спамдин вилик пад атIун",
        "version-other": "Муькуьбур",
        "specialpages": "КьетӀен ччинар",
        "external_image_whitelist": " #И цӀар авайд хьиз тур<pre>\n#Агъада вахт акадар тийиз жезвай (гьамиша къайдадалди) лугьунрин кьатӀар эцига (// арада авай кӀус).\n#Ибур кьецепатан суьретрин URL галаз гекъигда.\n#Дуьзкъвезвайбур суьретар хьиз къалурда, муькуьбур суьретриз тухузвай элячӀунар хьиз къалурда.\n#«#» галаз эгечӀзавай цӀарариз къейдериз хьиз килигда.\n#ЦӀарар регистрдиз фад кьатӀудайбур я.\n\n#ЦӀарцин винел вири вахт акадар тийиз жезвай лугьунрин кьатӀар эцига. И цӀар авайд хьиз тур</pre>",
index f11f156..b7592f5 100644 (file)
        "talkpagelinktext": "Parla",
        "specialpage": "Paje spesial",
        "personaltools": "Utiles personal",
-       "postcomment": "Sesion nova",
        "articlepage": "Vide la paje de contenis",
        "talk": "Discutes",
        "views": "Vides",
        "yourdomainname": "Tu domina:",
        "login": "Identifia",
        "nav-login-createaccount": "Sinia per entra",
-       "loginprompt": "Tu debe engrana \"tortetas\" per entra {{SITENAME}}.",
        "userlogin": "Sinia per entra",
        "logout": "Retira",
        "userlogout": "Sinia per retira",
        "uploadbtn": "Envia la fix",
        "uploadlogpage": "Envia arcivo",
        "savefile": "Fisa fix",
-       "uploadedimage": "\"[[$1]]\" es enviada",
        "upload-file-error": "Era interna",
        "imgfile": "fix",
        "listfiles": "Lista de imajes",
index 25010fe..ee0185a 100644 (file)
        "talkpagelinktext": "Yogera nange",
        "specialpage": "Olupapula olwawule",
        "personaltools": "Ebikola ku akawunti n'enfo yo",
-       "postcomment": "Kitundu kipya",
        "articlepage": "Kebera olupapula",
        "talk": "Emboozi",
        "views": "Kyusa endabika ya by'olaba wano",
        "externaldberror": "Waliwo kiremya mu ggwanika lya data ekozesebwa okukakasa bamemba oba tokkirizibwa okukyusa ku akawunti yo ey'awalala.",
        "login": "Yingira",
        "nav-login-createaccount": "Yingira / kolawo akawunti",
-       "loginprompt": "Okuyingira {{SITENAME}}, kalambula-neti yo erina okukkirizako kuki.",
        "userlogin": "Yingira / kolawo akawunti",
        "userloginnocreate": "Yingira",
        "logout": "Vaamu",
        "recentchangeslinked-to": "Nonamu eby'empapula ezikuggusa ku luno zokka",
        "upload": "Teekayo fayiro",
        "uploadlogpage": "Likooda eya fayiro eziteekedwa ku wiki",
-       "uploadedimage": "yateekayo \"[[$1]]\"",
        "listfiles_user": "Memba",
        "file-anchor-link": "Fayiro",
        "filehist": "Ebyafaayo ebya fayiro eno",
index 255d832..e09c114 100644 (file)
        "talkpagelinktext": "Euverlègk",
        "specialpage": "Speciaal pagina",
        "personaltools": "Persuunlike hulpmiddele",
-       "postcomment": "Nuuj sectie",
        "articlepage": "Artikel",
        "talk": "Euverlègk",
        "views": "Weergave",
        "externaldberror": "d'r Is 'n fout opgetraoje biej 't aanmelje biej de database of doe höbs gén toesjtömming diene externe gebroeker biej te wèrke.",
        "login": "Aanmèlde",
        "nav-login-createaccount": "Aanmelje / registrere",
-       "loginprompt": "Diene browser mót ''cookies'' acceptere óm in te logge op {{SITENAME}}.",
        "userlogin": "Aanmelde / registrere",
        "userloginnocreate": "Mèlj aan",
        "logout": "Aafmelde",
        "searchprofile-advanced-tooltip": "Zeuke in aongegeve naamruumdes",
        "search-result-size": "$1 ({{PLURAL:$2|1 waord|$2 wäörd}})",
        "search-result-category-size": "{{PLURAL:$1|1 categorielid|$1 categorielede}} ({{PLURAL:$2|1 ongercategorie|$2 ongercategorieë}}, {{PLURAL:$3|1 bestandj|$3 bestenj}})",
-       "search-result-score": "Relevantie: $1%",
        "search-redirect": "(doorverwiezing $1)",
        "search-section": "(subkop $1)",
        "search-suggest": "Meins te sóms: $1",
        "uploadwarning": "Upload waarsjuwing",
        "uploadwarning-text": "Pas de ongerstaonde bestandjsbesjrieving aan en perbeer t daonao opnuuj.",
        "savefile": "Bestand opsjlaon",
-       "uploadedimage": "haet ge-upload: [[$1]]",
-       "overwroteimage": "haet 'ne nuuje versie van \"[[$1]]\" toegevoeg",
        "uploaddisabled": "Uploade is oetgesjakeld",
        "copyuploaddisabled": "t Uploade van bestenj via nen URL is oetgezat.",
        "uploaddisabledtext": "'t uploade van bestenj is oetgesjakeld.",
        "watchlist-details": "D'r {{PLURAL:$1|sjteit ein pagina|sjtaon $1 pagina's}} op dien volglies mit oetzunjering van de euverlèkpagina's.",
        "wlheader-enotif": "Doe wörs per e-mail gewaarsjuwd",
        "wlheader-showupdated": "Pazjena's die verangerd zeen saers doe ze veur 't lètste bekeeks sjtaon '''vet'''",
+       "wlnote": "Hieónger {{PLURAL:$1|steit de lètste verangering|staon de lètste $1 verangeringe}} van {{PLURAL:$2|'t lètste oer|de lètste <b>$2</b> oer}} óp $3 óm $4.",
        "wlshowlast": "Tuin lètste $1 ore $2 daag $3",
        "watchlist-options": "Opties veur volglies",
        "watching": "Bezig mit plaatse op de volglies...",
        "duplicate-defaultsort": "Waarsjuwing: De standaardsortering \"$2\" krieg veurrang veur de sortering \"$1\".",
        "version": "Versie",
        "version-extensions": "Geïnstalleerde oetbreijinge",
+       "version-skins": "Vörmgevinge",
        "version-specialpages": "Speciaal pazjena's",
        "version-parserhooks": "Parserheuk",
        "version-variables": "Variabele",
        "version-antispam": "Spampreventie",
-       "version-skins": "Vörmgevinge",
        "version-other": "Euverige",
        "version-mediahandlers": "Mediaverwerkers",
        "version-hooks": "Heuk",
index 98789dd..c475327 100644 (file)
        "talkpagelinktext": "Ciæti",
        "specialpage": "Pagina speçiâ",
        "personaltools": "Strùmenti personâli",
-       "postcomment": "Noeuva seçion",
        "articlepage": "Veddi a voxe",
        "talk": "Ciæti",
        "views": "Vìxite",
        "password-change-forbidden": "No ti peu cangiâ poula segretta in questa wiki.",
        "login": "Intra",
        "nav-login-createaccount": "Intra / Registrate",
-       "loginprompt": "Pe fâ l'accesso inte {{SITENAME}} ti g'hæ da  abilitâ i cookie.",
        "userlogin": "Intra / Registrite",
        "userloginnocreate": "Intra",
        "logout": "Sciorti",
        "fileexists": "Un papê co sto nomme o existe de zà, pe piaxei da unn'euggiâ a <strong>[[:$1]]</strong> se non ti tei seguo de voleilo cangiâ.\n[[$1|thumb]]",
        "fileexists-forbidden": "Un papê co sto nomme o existe de zà, pe piaxei vanni in derrê e carega sto papê co un ätro nomme. [[File:$1|thumb|center|$1]]",
        "savefile": "Sarva o papê",
-       "uploadedimage": "O l'ha caregòu \"[[$1]]\"",
        "uploaddisabledtext": "In {{SITENAME}} non se peu caregâ de papê.",
        "uploadvirus": "O papê gha un virus!! Dettaggi: $1",
        "sourcefilename": "Nomme do papê d'origine:",
index d36102c..727743d 100644 (file)
@@ -4,7 +4,8 @@
                        "Andrijko Z.",
                        "Erdemaslancan",
                        "Ohpuu",
-                       "Warbola"
+                       "Warbola",
+                       "아라"
                ]
        },
        "sunday": "pivāpǟva",
        "navigation": "Navigīerimi",
        "qbfind": "Vȯtšõgid",
        "faq": "SKK",
-       "vector-action-addsection": "Pangid jūrõ tēma",
-       "vector-action-delete": "Kištāntõgid jarā",
-       "vector-action-move": "Vīž jarā",
-       "vector-action-protect": "Kaitsõmi",
-       "vector-view-create": "Lūo",
-       "vector-view-edit": "Redigīer",
-       "vector-view-history": "Nägţ istōrijõ",
-       "vector-view-view": "Vaņ",
-       "vector-view-viewsource": "Vaņ ovāt tekstõ",
        "actions": "Tīemizt",
        "namespaces": "Nim-rūimõd",
        "variants": "Varianţõd",
        "remembermypassword": " Mǟdlõgid sallisõnā (kuņtš $1 {{PLURAL:$1|päuvõ|päuvõ}})",
        "login": "Log sīezõ",
        "nav-login-createaccount": "Log sīezõ agā registrīer kȭlbatijizõks",
-       "loginprompt": "Sīezõ loggimizõks täddõn um āndamizt lubā \"kūkid\" (''cookies'') pierāst",
        "userlogin": "Sīezõ loggimi agā kȭlbatijiz-konto lūomi",
        "logout": "Log ulzõ",
        "userlogout": "Log ulzõ",
        "searchmenu-exists": "'''Lēḑ pēļizkēraks \"[[:$1]]\" um vȯlmizõs.'''",
        "searchmenu-new": "'''Lūo lēḑ pēļizkēraks \"[[:$1]]\".'''",
        "searchprofile-articles": "Sižāliz lēḑõd",
-       "searchprofile-project": "Ab ja projekt lēḑõd",
        "searchprofile-images": "Multimēdij",
        "searchprofile-everything": "Tikkiž",
        "searchprofile-advanced": "Jo akurāt vȯtšimi",
        "searchprofile-articles-tooltip": "Vȯtšõgid nim-rūimstõ $1",
-       "searchprofile-project-tooltip": "Vȯtšõgid nim-rūimstõ $1",
        "searchprofile-images-tooltip": "Fail vȯtšimi",
        "searchprofile-everything-tooltip": "Vȯtšõgid amā sižāliz sizāld (ka nõvpidāmiz-lēḑõd pǟld)",
        "searchprofile-advanced-tooltip": "Vȯtšõgid andtõd nim-rūimšti",
        "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:",
-       "powersearch-redir": "Jeddõpēḑõn sōtimizt nimkēra",
        "preferences": "Mīeldõbõd ulzõ-vēļimizt",
        "mypreferences": "Min mīeldõbõd ulzõ-vēļimizt",
        "youremail": "E-kēra adres:",
        "recentchanges-label-bot": "Sīe mõitõks tei ikš robot",
        "recentchanges-label-unpatrolled": "Se mõitõks tēji vȯļ ikš robot",
        "rcnotefrom": "Allõ-pūol um tūodõd mõitõkst  '''$2''' sōņõst: (nägţõbõd amā jemīņ '''$1''' mõitõkst)",
-       "rclistfrom": "Nägţ mõitõkši sōņõst: $1",
+       "rclistfrom": "Nägţ mõitõkši sōņõst: $3 $2",
        "rcshowhideminor": "$1 piškizt parāmtimizt",
        "rcshowhidebots": "$1 robōtõd",
        "rcshowhideliu": "$1 sīezõ loggõnd kȭlbatijizt",
        "upload": "Fail ilzõ-lōţimi",
        "uploadlogpage": "Ilzõ-lōţimiz log",
        "filedesc": "Kubbõ võtāmi:",
-       "uploadedimage": "lōţiz ilzõ fail \"[[$1]]\"",
        "license": "Litsents:",
        "license-header": "Litsents:",
        "file-anchor-link": "Bīlda",
        "booksources-go": "Li",
        "log": "Logūd",
        "allpages": "Amād lēḑõd",
-       "alphaindexline": "$1 sōņist $2 sōņõ",
        "prevpage": "Jedmõli lēḑ ($1)",
        "allpagesfrom": " Nägţ līedidi pēļizkērast sōņõst:",
        "allpagesto": " Nägţ līedidi sīe pēļikēra sōņõ:",
index cf83330..80bfa6b 100644 (file)
        "talkpagelinktext": "Ciciarada",
        "specialpage": "Pagina speciala",
        "personaltools": "Istrüment persunaj",
-       "postcomment": "Sezión növa",
        "articlepage": "Varda l'articul",
        "talk": "Discüssión",
        "views": "Vìste",
        "externaldberror": "Gh'è 'n erùr söl server de autenticasiù estèrno o sedenò se g'ha mìa le autorizasiù nesesàre per agiurnà i dati de registrasiù estèrni.",
        "login": "Va dent",
        "nav-login-createaccount": "Vena denter / Crea un cünt",
-       "loginprompt": "Par cunett a {{SITENAME}}, a duvii abilitá i galet.",
        "userlogin": "Vegní denter - Creè un cünt",
        "userloginnocreate": "Vegn denter",
        "logout": "Va fö",
        "searchprofile-everything-tooltip": "Cerca depertüt (anca int i paginn de discüssion)",
        "searchprofile-advanced-tooltip": "Cerca int i namespace persunalizaa",
        "search-result-size": "$1 ({{PLURAL:$2|1 parola|$2 paroll}})",
-       "search-result-score": "Atinènsa: $1%",
        "search-redirect": "(redirezión $1)",
        "search-section": "(sessión $1)",
        "search-file-match": "(corespondènsa endèl test de l'archivi)",
        "ignorewarnings": "Ignora tücc i avertimeent",
        "largefileserver": "Chel archivi-chí al è püssee graant che ul serviduur al sía cunfigüraa da permett.",
        "savefile": "Salva l'archivi",
-       "uploadedimage": "l'ha cargaa \"[[$1]]\"",
        "sourcefilename": "Nomm da l'archivi surgeent:",
        "destfilename": "Nomm da l'archivi da destinazziun:",
        "imgfile": "archivi",
index d7eb71b..5e8fda1 100644 (file)
@@ -3,12 +3,12 @@
                "authors": [
                        "Bombo (on ln.wikipedia.org)",
                        "Eruedin",
-                       "Moyogo"
+                       "Moyogo",
+                       "TMg"
                ]
        },
        "tog-underline": "Kotíya sulimá na bikangisi:",
        "tog-showtoolbar": "Komɔ́nisa ndámbo-ndámbo (esengélí JavaScript)",
-       "tog-rememberpassword": "Komíkundola bokitoli na molúki (ekosúkisa na {{PLURAL:$1|mokɔlɔ|mikɔlɔ}} $1)",
        "underline-always": "Mikɔlɔ yɔ́nsɔ",
        "underline-never": "Libélá tɛ́",
        "sunday": "Lomíngo",
@@ -53,8 +53,8 @@
        "feb": "s2",
        "mar": "s3",
        "apr": "s4",
-       "may": "s4",
-       "jun": "s5",
+       "may": "s5",
+       "jun": "s6",
        "jul": "s7",
        "aug": "s8",
        "sep": "s9",
        "qbpageoptions": "Lonkásá óyo",
        "qbmyoptions": "Lonkásá na ngáí",
        "faq": "Mitúná Mizóngelaka (MM)",
-       "vector-action-addsection": "Kobakisa mpɔ̂",
-       "vector-action-delete": "Kolímwisa",
-       "vector-action-move": "Kobóngola nkómbó",
-       "vector-action-protect": "Kobátela",
-       "vector-action-undelete": "Kolímwisa tɛ̂",
-       "vector-action-unprotect": " Kobátela tɛ̂",
-       "vector-view-create": "Kokela",
-       "vector-view-edit": "Kobɔngisa",
-       "vector-view-history": "Komɔ́nisa mokóló",
-       "vector-view-view": "Kotánga",
-       "vector-view-viewsource": "Komɔ́nisa mosólo",
        "namespaces": "Ntáká ya nkómbó",
        "errorpagetitle": "Mbéba",
        "returnto": "Kozóngisa na $1.",
        "talkpagelinktext": "Ntembe",
        "specialpage": "Lonkásá gudi",
        "personaltools": "Bisáleli ya moto-mɛ́i",
-       "postcomment": "Sɛksió sika",
        "articlepage": "Komɔ́nisa káti",
        "talk": "Ntembe",
        "views": "Bomɔ́nisi",
        "searchprofile-images": "Mitímediá",
        "searchprofile-everything": "Yɔ́nsɔ",
        "searchprofile-articles-tooltip": "Koluka na $1",
-       "searchprofile-project-tooltip": "Koluka na $1",
        "search-result-size": "$1 ({{PLURAL:$2|lokomá 1|nkomá $2}})",
-       "search-result-score": "Ntína : $1%",
        "search-redirect": "(boyendisi útá $1)",
        "search-section": "(sɛksió ya $1)",
        "search-suggest": "Ómeka na lokomá : $1",
        "searchall": "nyɔ́nsɔ",
        "powersearch-legend": "Boluki bopúsání",
        "powersearch-ns": "Koluka o ntáká ya nkómbó :",
-       "powersearch-redir": "Kotíya molɔngɔ́ mwa mayendisi",
        "powersearch-toggleall": "Nyɔ́nsɔ",
        "powersearch-togglenone": "Mɔ́kɔ́ tɛ́",
        "preferences": "Malúli",
        "uploadlogpage": "Zuluná ya botómbisi likoló",
        "filedesc": "Likwé ya mokusé:",
        "savefile": "kobómbisa kásá-kásá",
-       "uploadedimage": "«[[$1]]» etómbísámí likoló",
        "listfiles_date": "Mokɔlɔ",
        "file-anchor-link": "Elilingi",
        "filehist": "Mokóló mwa kásá",
        "booksources-go": "Kɛndɛ́",
        "log": "Bapasɔ́",
        "allpages": "Nkásá ínsɔ",
-       "alphaindexline": "$1 kina $2",
        "nextpage": "Lonkásá ya nsima ($1)",
        "prevpage": "Lonkasá o libosó ($1)",
        "allarticles": "Nkásá ínsɔ",
        "watchthispage": "Kolanda lonkásá óyo",
        "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",
        "watching": "Kolanda...",
        "unwatching": "Kolanda tɛ́...",
index 4990cb2..dfffb14 100644 (file)
        "yourdomainname": "ໂດເມນ ຂອງ ທ່ານ",
        "login": "ເຊັນເຂົ້າ",
        "nav-login-createaccount": "ເຊັນເຂົ້າ / ສ້າງບັນຊີ",
-       "loginprompt": "ທ່ານຕ້ອງຮັບຄຸກກີ້ ເພື່ອ ເຊັນເຂົ້າ {{SITENAME}}.",
        "userlogin": "ເຊັນເຂົ້າ / ສ້າງບັນຊີ",
        "logout": "ເຊັນອອກ",
        "userlogout": "ເຊັນອອກ",
        "nextn": "{{PLURAL:$1|$1}} ຕໍ່ໄປ",
        "viewprevnext": "ເບິ່ງ ($1 {{int:pipe-separator}} $2) ($3).",
        "search-result-size": "$1 ({{PLURAL:$2|1 ຄຳ|$2 ຄຳ}})",
-       "search-result-score": "ຄວາມກ່ຽວຂ້ອງ: $1%",
        "search-redirect": "(ໂອນ $1)",
        "search-relatedarticle": "ກ່ຽວຂ້ອງ",
        "searchrelated": "ກ່ຽວຂ້ອງ",
index fdeafee..7f03841 100644 (file)
        "talkpagelinktext": "Bulelezi",
        "specialpage": "Petulo Zwenti",
        "personaltools": "Solume sisebelisoni",
-       "postcomment": "Bulelezi mulumiwa",
        "articlepage": "Kamukile petulo",
        "talk": "Bulelezi",
        "views": "Kamukile",
        "yourdomainname": "Zwa domeni:",
        "login": "Menuhile",
        "nav-login-createaccount": "Menuhile / ipupezi sebelu",
-       "loginprompt": "A sa nyembulisize di kukina di menuhile kwa {{SITENAME}}.",
        "userlogin": "Menuhile / ipupezi sebelu",
        "logout": "Ile",
        "userlogout": "Ile",
        "fileuploadsummary": "Lyangutukezi:",
        "filesource": "Ng'i",
        "savefile": "Bulukezi imegi",
-       "uploadedimage": "sa uplodezi \"[[$1]]\"",
-       "overwroteimage": "sa uplodezi nca imegi petuho di \"[[$1]]\"",
        "sourcefilename": "Ng'i di imegi",
        "watchthisupload": "Kentezi bye petulo",
        "upload-file-error": "Interni bufosi",
index 07dd2bc..e5b7208 100644 (file)
        "eauthentsent": "یه گل انجومانامه پشت راس کردنی د یه گل تیرنشون ویجه کل بیه.\nدما یه که یه گل انجومانامه هنی د حساو کل بوئه، شما واس دما رئنمونی نه د انجومانامه بئریت، سی یه که حساو شما راستکی پشت راست بوئه.",
        "throttled-mailpassword": "یه گل پسورد دواره زنه بیه ایسه کل بیه، د آخری {{جمی:$1|ساعت|$1 ساعتیا}}.\nسی نهاگری د اذیت دئن،فقط یه گل رازینه گواردن د انجومانامه دواره زنه بیه د هر {{جمی:$1|ساعت|$1 ساعتیا}} کل بیه.",
        "mailerror": "خطا داره کل موئه:$1",
+       "acct_creation_throttle_hit": "سیل کریا ای ویکی د تیرنشون آی پی شما استفاده کردنه د روز دمایی {{جمی:$1|1 حساو|$1 حساویا}} نه دروس کردنه، و وه د بیشترونه صلا دئن د ای دوره گاتی انجوم بیه.\nد نتیجه، سیل کریایی که د ای تیرنشون آی پی استفاده کردنه نمی تونن  حساویا بیشتری د ای گات دروس بکن.",
        "emailauthenticated": "نشونی انجومانامه تونه د $2 سی 3$ مئکم بیه.",
        "emailnotauthenticated": "تیرنشون انجومانامه شما تا ایسه پشت راسگری نبیه.\nهنی انجومانامه ای سی چیا ری به نها کل نبیه.",
+       "noemailprefs": "یه گل تیرنشون انجومانامه د الویتیاتو سی یه که ای ویجه گیا کار بکن انتخاو بکیت.",
        "emailconfirmlink": "نشونی ايملتو نه محكم بكيد",
        "invalidemailaddress": "تیرنشون انجومانامه حاستنی نئ شکل وه چوئه خوئی ناره.\nلطفن یه گل تیرنشون چوئه دار وارد بکیت یا ای رشنه گه نه حالی بنیت.",
        "cannotchangeemail": "نشونی ایمیل حساو نتونه د ای ویکی آلشت بوئه.",
        "resetpass-validity-soft": "زازینه گواردتون تو معتور نئ:$1\n\nلطفن یه گل رازینه گواردن هنی انتخاو بکیت، یا ری ایچه \"{{int:resetpass-submit-cancel}}\" سی د نو زنه کردن وه د نهاتر بپورنیت.",
        "passwordreset": "د نۈ وارد كردن رمز",
        "passwordreset-text-one": "ای نوم بلگه نه سی گرتن یه گل رازینه گواردن موقتی وا انجومانامه پر بکیت.",
+       "passwordreset-text-many": "{{جمی:$1|یه گل د رشنه گه یا نه سی یه که رازینه گواردن موقتی وا انجومانامه گرته بوئه پر بکیت}}",
        "passwordreset-legend": "د نۈ وارد كردن رمز",
        "passwordreset-disabled": "نو کرد پاسورد د ای ویکی غیرفعال بیه.",
        "passwordreset-emaildisabled": "چی یا هنی ایمیل د ای ویکی غیرفعال بیه.",
        "passwordreset-emailelement": "نوم کاروری: $1\nپاسورد موقتی: $2",
        "passwordreset-emailsent": "پاسورد هنی سی ایمیل کل بیه.",
        "passwordreset-emailsent-capture": "پاسورد تازه تو د ایمیلتو که د هار نشو دئه بیه کل بیه",
+       "passwordreset-emailerror-capture": "رازینه گواردن د انجومانامه د نو زنه کننه راس بیه، و وه د هار دیاری می که، اما کل بیین وه د{{جنس:$2|کاریار}} شکست حرده:$1",
        "changeemail": "ایمیل تو نه آلشت بکید",
        "changeemail-header": "ایمیل حساوتونه آلشت بکید",
+       "changeemail-text": "ای نوم بلگه نه سی آلشت دئن تیرنشون انجومانامه تو پر بکیت. شما سی پشت راس کردن ای آلشت واس رازینه گواردن خوتونه وارد بکیت.",
        "changeemail-no-info": "شما با بیایت د سیستم تا د ای بلگه دسرسی داشتویت",
        "changeemail-oldemail": "نشونی ایمیل تازه باو:",
        "changeemail-newemail": "نشونی ایمیل تازه",
        "changeemail-password": "شما {{SITENAME}} پاسورد:",
        "changeemail-submit": "آلشت کردن ایمیل",
        "changeemail-cancel": "انجوم شیوسن",
+       "changeemail-throttled": "شما ایسنی فره سی وامین اومائن تلاش کردیته.\n$1 لطفن سی تلاش هنی صبر بکید.",
        "resettokens": "تازه کردن نشونه یا",
+       "resettokens-text": "شما سی صلا دئن دسرسی وه رسینه یا خصوصی که ها د حساو ایچنی تو می تونیت دیارگریا نه د نو زنه بکیت.\n\nشما اوسنی واس ای کار بکیت که رسینه یا شما سی یه کسی تر بئر بیه یا د حساو شما چل بیه.",
        "resettokens-no-tokens": "هیژ نشونه ای سی تازه کردن نئ.",
        "resettokens-legend": "تازه کردن نشونه یا",
        "resettokens-tokens": "نشونه یا:",
        "resettokens-token-label": "$1 (ارزشت تازه: $2)",
+       "resettokens-watchlist-token": "دیارگر سی حردنی تورگه(اتم/آر اس اس) سی [[ویجه:سیل برگ|آلشت دئن بلگه یا د سیل برگتو]]",
        "resettokens-done": "نشونه یا تازه بیه.",
        "resettokens-resetbutton": "نشونه یا انتخاو بیه تازه بوئن",
        "bold_sample": "متن توپر بيه",
        "preview": "پيش سيل",
        "showpreview": "پيش نمائش نشون بيئه",
        "showdiff": "آلشتيانه نشون بيئه",
+       "blankarticle": "<strong>زنئار:</strong> بلگه ای که شما دروس کردیته حالیه.\nار شما د نو ری \"{{int:savearticle}}\" بپورنیت, بلگه وه شکل که هیچ مینونه ای دش نبا دروس بوئه.",
        "anoneditwarning": "زنهار شما وامین نیومایته.\nنشونی آی پی تو د ویرگار ویرایشت ای بلگه ضفط بوئه",
+       "anonpreviewwarning": "<em>شما نیومائته وامین. تیرنشون آی پی شما د ویرگار ویرایشت ای بلگه اماییه بوئه.</em>",
+       "missingsummary": "<strong>د ویر ونا:</strong> شما هنی یه گل چکسته ویرایشتی نها اماییه نکردیته.\nار شما د نو د ری\"{{int:savearticle}}\" بپورنیت, ویرایشت شما حالی اماییه بوئه.",
        "missingcommenttext": "لطفن د ایچه نظر بیئتو",
+       "missingcommentheader": "<strong>د ویر ونا:</strong> شما هنی یه گل موضوع/سرخط سی ای ویر و باور نها اماییه نکردیته.\nار شما د نو د ری\"{{int:savearticle}}\" بپورنیت, ویرایشت شما حالی اماییه بوئه.",
        "summary-preview": "چکسته پیش سیل:",
        "subject-preview": "پیش سیل موضو سرخط",
        "blockedtitle": "كارور قلف بيه",
+       "blockedtext": "<strong>نوم کاریاری شما یا تیرنشون آی پی شما قلف بیه.</strong>\n\n\n$1 ونه قلف کرده.\nدلیل ها د ایچه<em>$2</em>.\n\nشرو د قلف بیین:$8\nآخر قلف بیین:$6\nکاریار ورتیه قلف بیه:$7\n\nشما می تونیت وا $1 یا [[{{MediaWiki:Grouppage-sysop}}|دیووندار]] هنی پیوند بئریت و سی قلف کردن چک چنه بزنیت.\nالوت د ویر داشتویت که شما نمی تونیت د خصوصیت انجومانامه کل کردن سی ای کاربر استفاده بکیت مئر  یه گل تیرنشون انجومانامه معتور د [[Special:Preferences|ترجیحیا کاریاری]] خوتو معلوم کرده بویت و باید امکان وه کار بستن وه نه داشتویتو\nتیرنشون آی پی ایسنی شما $3 ئه، و نوم دیارکن قلف کردن #$5 ئه.\nلطفا همه جزئیات نه د هر حاسته ای که داریت بوئیت.",
+       "autoblockedtext": "نوم کاریاری شما یا تیرنشون آی پی شما سی یه که یه گل کاریاری هنی وه کارش بسته خودانجومن قلف بیه $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تیرنشون آی پی ایسنی شما $3 ئه، و نوم دیارکن قلف کردن #$5 ئه.\nلطفا همه جزئیات نه د هر حاسته ای که داریت بوئیت.",
        "blockednoreason": "هیژ دلیلی دئه نبیه",
        "whitelistedittext": "شما باید $1 سی ویرایشت بلگیا",
+       "confirmedittext": "شما واس دما ویرایشت کردن بلگه یا تیرنشون انجومانامه تونه پشت راس بکیت.\nلطفا یه گل تیرنشون خو سی [[Special:اولویتیا|اولویتیا کاریار]] بنیت.",
        "nosuchsectiontitle": "نبوئه بشخ پیدا بوئه",
+       "nosuchsectiontext": "شما سی ویرایشت کردن جایی که وجود ناره تلاش کردیته.\nشات وه اوسه که شما بلگه نه می دیئته جا وه جا بیه یا پاکسا بیه.",
        "loginreqtitle": "وامین اومائن لازمه",
        "loginreqlink": "اومائن",
        "loginreqpagetext": "$1 لطف بکید بلگه یا هنی نه بوینیت",
        "accmailtitle": "پاسورد کل بی",
+       "accmailtext": "یه گل رازینه گواردن شامسکی سی[[چک چنه کاریار:$1|$1]] سی $2 کل بیه.بوئه وه نه د گات وه کار بستن بلگه اومائن وامین د <em>[[Special:آلشت دئن رازینه گواردن|آلشت دئن رازینه گواردن]]</em>  آلشت دئه بوئه.",
        "newarticle": "تازه",
        "newarticletext": "شما وادما هوم پیوندی هئیت که وجود ناره.\nسی راس کردن بلگه.شرو د نیسنن مئن جعوه هاری بکید(سیل[$1 ] سی دونسمنی بیشتر بکید).\nار شما سی اشتوا کردن هایئن ایچه، دگمه وادما رئتن مرورگر تونه بپورنیت.",
+       "anontalkpagetext": "----",
        "noarticletext": "د تازه یا د ای بلگه متن نی.\nشما تونید د[[Special:Search/{{PAGENAME}}|search for this page title]] بگردید د ای بلگه یا د بلگیا هنی یا<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}   د هنی پی جوری بوئه  logs]</span>   \n   [{{fullurl:{{FULLPAGENAME}}|action=edit}} یای ای بلگه نه ویرایشت بکیدpage]</span>.",
        "noarticletext-nopermission": "د تازه یا د ای بلگه متن نی.\nشما تونید د[[Special:Search/{{PAGENAME}}|search for this page title]] بگردید د ای بلگه یا د بلگیا هنی یا<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}   د هنی پی جوری بوئه  logs]</span>      اما شما حق ناریتو ای بلگه نه راس بکیت",
+       "missing-revision": "وانئیری #$1 د بلگه ای که نومش ونه \"{{FULLPAGENAME}}\" وجود ناره.\n\nشایت بانی جاونه وه وا یه گل ویرگار وه هنگوم نبیه که د یه گل بلگه پاکسا بیه هوم پیوند بیه بوئه.\nشایت جزئیات د   [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]  پیدا بوئن.",
+       "userpage-userdoesnotexist": "حساو کاریاری\"$1\" ثوت نام نبیه.\nار میهایت ای بلگه نه بسازیتو یا ویرایشت بکیت یه گل وارسی انجوم بئیت.",
        "userpage-userdoesnotexist-view": "حساو کارور\"$1\" ثوت نبیه.",
        "blocked-notice-logextract": "ای کارور ایسنی دسرسی ناره.\nآخری نشون قلف ورودی د هار ایچه سی سرچشمه آماده بیه:",
+       "clearyourcache": "<strong>توجه داشتویت:</strong> نها اماییه کاری, شات مژبور وه وه کار ونن ویرگه نهو دوارته نیئر خوتو سی دیئن ای آلشتیا بوئیت .\n* <strong>فایرفاکس/ سفری:</strong> بپورنیت ری<em>شیفت</em> اوسه که می پورنیت<em>د نو سوار بوئه</em>یا هنی ری <em>Ctrl-F5</em> بپورنیت یا<em>Ctrl-R</em> (<em>⌘-R</em> د سامونه مک)\n* <strong>گوگل کروم:</ strong>بپورنیت ری <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> یا د سامونه)\n* <strong>اینترنت اکسپلورر:</strong> <em>Ctrl</em> واداریت اوسه که می پورنیت ری <em>Refresh</em>, یل بپورنیت ری<em>Ctrl-F5</em>\n* <strong>اوپرا:</strong> ویرگه نهو نه د <em>اوزاریا→ اولویتیا پاک بکیت</em>",
+       "usercssyoucanpreview": "<strong>نکته:</strong> د دگمه \"{{int:showpreview}}\" سی آزماشت کردن سی اس اس تازه دما اماییه کاری استفاده بکیت .",
+       "userjsyoucanpreview": "<strong>نکته:</strong> د دگمه \"{{int:showpreview}}\" سی آزماشت کردن دما اماییه کاری جاوا اسکریپت تازه استفاده بکیت .",
+       "usercsspreview": "<strong>د ویر داشتوئیت که شما فقط می تونیت سی اس اس کاریاری تونه پیش سیل بکیت. وه د ایسنی هنی اماییه نبیه!</strong>",
+       "userjspreview": "<strong>د ویر داشتوئیت که شما فقط می تونیت جاوا اسکریپت کاریاری تونه پیش سیل بکیت. وه د ایسنی هنی اماییه نبیه!</strong>",
+       "sitecsspreview": "<strong>د ویر داشتوئیت که شما فقط می تونیت ای سی اس اس  نه فقط پیش سیل بکیت. وه د ایسنی هنی اماییه نبیه!</strong>",
+       "sitejspreview": "<strong>د ویر داشتوئیت که شما فقط می تونیت ای ای جاوا اسکریپت نه فقط پیش سیل بکیت. وه د ایسنی هنی اماییه نبیه!</strong>",
+       "userinvalidcssjstitle": "<strong>زئنار:</strong> پوسه \"$1\" نیئش.\nسی اس اس جاونه و بلگه یا جاوا اسکریپت  سرون وا حرف کؤچک نه وه کار بسته، همچنو{{ns:کاریار}}:فو/وکتور.سی اس اس چی د ضد{{ns:کاریار}}:فو/وکتور. سی اس اسه.",
        "updated": "(تازه بيه)",
        "note": "'''نيسنن:'''",
        "previewnote": "فقط ای پیش سیل د ویرتو با.\nآلشتیاتو هنی اماییه نبیه.",
        "continue-editing": "رو د راساگه ویرایشت",
+       "previewconflict": "ورگشت پیش سیل د نیسسه د راساگه وارو ویرایشت چی شکل دیار بیین بوئه ار شما وه نه سی اماییه کردن انتخاو بکیت.",
+       "session_fail_preview": "<strong>د بدبختی ما سی یه که رسینه یا جلسه مونه د دس دئیمه نمی تونیم کار پردازشت ویرایشت شمانه انجوم بیئمو.</strong>\nلطفن هنی تلاش بکیت.\nار هنی کار وه دروس کار نکرد،[[Special:UserLogout|اومائن وه در]] نه ازمایشت بکیت و د نو بیایت وامین.",
+       "session_fail_preview_html": "<strong>د بدبختی ما سی یه که رسینه یا جلسه مونه د دس دئیمه نمی تونیم کار پردازشت ویرایشت شمانه انجوم بیئمو.</strong>\nلطفن هنی تلاش بکیت.\n\n<em>سی یه که {{نوم دیارگه}} یه گل ردیف اچ تی ام ال کنشتگر بیه داره، پیش سیل سی یه که د دس حمله یا جاوا اسکریپ د امون با قام کرده بیه..</em>\n\n<strong>ار وه گات قانونی تلاش سی ویرایشته،لطفا د نو تلاش بکیت.</strong>\nار هنی کار وه دروس کار نکرد،[[Special:UserLogout|اومائن وه در]] نه ازمایشت بکیت و د نو بیایت وامین.",
+       "token_suffix_mismatch": "<strong>ویرایشتیا شما سی یه که دووارته نئر شما نیسسه یا نقطه نیائن نه د رازینه امنیتی ویرایشت د یک تیچسه.</strong>\nویرایشت سی یه که د خراو بیئن نیسسه بلگه نهاگری با رد بیه.\nای رخ ون د گاتیایی پیش میا که شما د یه گل رسینه جا پروکسی استفاده می کیت.",
+       "edit_form_incomplete": "<strong>پاره ای د ویرایشتا وه رسینه جا نمی رسن، هنی وارسی بکیت سی یه که بوینیت ویرایشتیا شما خوئه و هنی تلاش بکیت .</strong>",
        "editing": "د حالت ويرايشت$1",
        "creating": "راس كردن $1",
        "editingsection": "د حال ویرایشت$1(بشخ)",
        "explainconflict": "داوسه که شما شرو د ویرایشت ای بلگه کردیته، یه نفر هنی ای بلگه نه آلشت دئه.\nراساگه روئی متن بلگه متن نه چی یه که وجود داشتوه د ور میئره.\nآلشتیا شما د متن هاری نشو دئه هئ.\nشما با آلشتیاتونه د متن که هئش یکی بکید.\nفقط متنی که ها د رو د وختی که شما\"{{رقم:ذخیره گوتار}}\" نه گزارشت می کید اماییه بوئه",
        "yourtext": "متن شما",
        "storedversion": "دوواره دیئن انبار بیه.",
+       "nonunicodebrowser": "<strong>زئنار:دووارته نئر شما وا نیسسه یا یونیکد سازگاری ناره.</strong>\nیه گل راحل وه کار گرته بیه سی یه که شما بلگه یا نه وا امنیت ویرایشت بکیت:\nنیسه یا غیر-ASCII  د پایه رازینه یا 16 تایی دتو نشو دئه بوئه.",
+       "editingold": "<strong>زئنار:شما داریت یه گل وانئری نا به هنگوم بیه نه سی ای بلگه ویرایشت می کید</strong>\nار شما ونه اماییه بکیت،هر آلشتی که د اول سی ای وانئری انجوم بیه گم بوئه.",
        "yourdiff": "فرخيا",
+       "longpageerror": "<strong>خطا:نیسسه شما  {{جمی:$1|یه کلوبایت|$1 کلوبایت}}  درازی نه دئه، که ونو د بیشرونه انازه{{جمی:$2|یه کلوبایت|$2 کلوبایت}} گپترن.</strong>\nنبوئه وه اماییه با.",
+       "readonlywarning": "<strong>زئنار:رسینه گا سی واداشت قلف بیه، سی یه نه که شما ایسه نمی تونیت ویرایشتیاتونه اماییه بکیت.</strong>\nشات شما بحایت که نیسسه خوتونه د جانیا نیسسه ای وردار بدیس بکیت و ونه سی نهاتر اماییه بکیت.\n\nدیوونداری که ونه قلف کرده چنی گوته:$1",
+       "protectedpagewarning": "<strong>زئنار:ای بلگه سی یه پر و پیم بیه که کاریاریایی که دسرسی دیوونداری دارن فقط بتونن دش ویرایشت بکن.</strong>\nآخرین سیائه سی سرچشمه یا د هار اماییه کاری بیه:",
+       "semiprotectedpagewarning": "<strong>د ویر داشتویت:</strong> ای بلگه سی یه که فقط کاریاریا ثوت نام کرده تونستون دش ویرایشت بکه ن پر و پیم بیه.\nآخرین پهرستنومه دئه بیه سی سرچشمه هار نها اماییه بیه:",
+       "cascadeprotectedwarning": "<strong>زئنار:</strong> ای بلگه",
+       "titleprotectedwarning": "<strong>زئنار:ای بلگه پر و پیم بیه سی یه که[[ویجه:نوم گه حقوق گرو|حقوق ویجه]] باید ونه دروس بکن .</strong>\nآخرین پهرستنومه دئه بیه سی سرچشمه دئن نهااماییه بیه:",
        "templatesused": "{{جمی:$1|چوئه|چوئه یا}}د ای بلگه استفاده بیه:",
        "templatesusedpreview": "{{جمی:$1|چوئه|چوئه یا}}استفاده بیه د ای پیش سیل:",
        "templatesusedsection": "{{جمی:$1|چوئه|چوئه یا}} استفاده بیه د ای بخش:",
        "recreate-moveddeleted-warn": "'''زنهار شما بلگه ای که وادما پاکسا بیه هنی راس کردیته'''\nشما باید دونسه بایت که آیا هنی سی نها گرتن ویرایشت ای بلگه خوئه.\nپاکسا بیئن و جمشت سی ای بلگه سی راحتی تو فراهم بیه:",
        "moveddeleted-notice": "ای بلگه پاک بیه.\nپاک بین و جمشت ای بلگه سی سرچشمه دئین فراهم بیه",
        "log-fulllog": "دیئن همه پهرستنومه یا",
+       "edit-hook-aborted": "ویرایشت وا قلاو جلوگری بیه.\nهیچ توضیئ سیش نئ.",
+       "edit-gone-missing": "نبوئه ای بلگه نه وه هنگوم بکیت.\nوه نظر میا که وه پاکسا بیه.",
        "edit-conflict": "مخالفت نه ویرایشت بکید",
+       "edit-no-change": "سی یه که آلشتیا د یه گل نیسسه دروس بیه د ویرایشت شما تیه پوشی بیه.",
        "postedit-confirmation-created": "بلگه دروس بیه.",
        "postedit-confirmation-restored": "بلگه د نو اماییه بیه.",
        "postedit-confirmation-saved": "ویرایشتتو اماییه بی",
        "content-failed-to-parse": "د یک تیچیسن چیا مئن $2 د مدل $1:$3",
        "invalid-content-data": "دنسمنی مینونه نامعتور",
        "content-not-allowed-here": " مینونه\"$1\" سی بلگه [[$2]] اجازه نه دئه بیه",
+       "editwarning-warning": "ار ای بلگه نه ول بکیت هر آلشتی که دئیته پاک بوئه.\nار شما هاییت وا مین،شما می تونیت ای زئنار نه د \"{{int:prefs-editing}}\" که ها د بخش اولویتیا شما ناکشتگر بکیت.",
        "editpage-notsupportedcontentformat-title": "شلک مینونه دماگری نبیه",
+       "editpage-notsupportedcontentformat-text": "وضع و بار مینونه $1 د مدل مینونه $2 حامین نبوئه.",
        "content-model-wikitext": "ويكی متن",
        "content-model-text": "متن ساده",
        "content-model-javascript": "جاوا اسكريپت",
        "content-model-css": "سی اس اس",
+       "expensive-parserfunction-warning": "<strong>زئنار:</strong>ای بلگه مینونه دار واحونی دستوریا مئن اشکافت فره ای هئ.\n\nانازه و باید د کمتر با$2 {{جمی:$2|واحونی|واحونیا}}، ایسه {{جمی:$1|$1 واحونی|$1 واحونیا}}ئه.",
+       "expensive-parserfunction-category": "بلگه یایی که واحونی پیوندگر خطا گرون فره ای ها دشو",
        "post-expand-template-inclusion-warning": "زنئار قالو شومل انازه ای یه که فره گپه.پاره ای د قالویا نه د بر نگره",
        "post-expand-template-inclusion-category": "بلگیا شومل قالوی ین که انازش د حد اومائه وه در",
        "post-expand-template-argument-warning": "زنهار ای بلگه شومل حداقل یه قالو سی چک چنه یه که انازه فره گپه.\nگپسنیا پاک بینه.",
        "post-expand-template-argument-category": "بلگه شومل قالو چک چنیا د بین رئته",
        "parser-template-loop-warning": "حلقه قالو کشف بیه:[[$1]]",
+       "parser-template-recursion-depth-warning": "محدودیت پی یا ورئشتن چوئه رد بی($1)",
+       "language-converter-depth-warning": "محدودیت پی یا زون والرن رد بی($1)",
+       "node-count-exceeded-category": "بلگه یا که د بیشرونه شماره گرو فره پئشکرد کردنه",
+       "node-count-exceeded-category-desc": "زیردسه سی بلگه یایی که د ونو اشمارنه فره پئشکرد کرده.",
+       "node-count-exceeded-warning": "بلگه د بیشترونه شماره گرو فره پئشکرد کرد",
+       "expansion-depth-exceeded-category": "بلگه یایی که د بیشترونه پی یا ووله کردن فره پئشکرد کردنه",
+       "expansion-depth-exceeded-category-desc": "زیر دسه سی بلگه یایی که د ونو پی یا ووله بیین فره پئشکرد کرده.",
+       "expansion-depth-exceeded-warning": "بلگه د پی یا ووله بیین پئشکرد کرد",
+       "parser-unstrip-loop-warning": "گردوله د فرمونه Unstrip پیدا بیه",
+       "parser-unstrip-recursion-limit": "د بیشترونه د سرچشمه رئتن د دستور Unstrip واروتر رئتیته($1)",
+       "converter-manual-rule-error": "خطا د قانون دسی زون",
+       "undo-success": "نبوئه ویرایشت نه انجومشیو بکیت.\nلطفا ای فرخی که ها د هار نه وارسی بکیت تا یه کاریه که میهات انجوم بئیت، و اوسه آلشتیا هار نه اماییه بکیت سی یه که خمثی کردن ویرایشت نه انجوم بئیت.",
+       "undo-failure": "سی ری به ری بیئن ای ویرایشت وا ویرایشتیا مینجایی، نبوئه ای ویرایشت نه خومثی بکیت.",
+       "undo-norev": "نبوئه ای ویرایشت نه خومثی بکیت سی یه که یا وجود ناره یا پاکسا بیه.",
+       "undo-nochange": "وه نظر میا که ای ویرایشت د ایسنیا خومثی بیه.",
+       "undo-summary": "خومثی بیئن وانئری وا $1[[ویجه:هومیاریا/$2|$2]] ([[چک چنه کاریار:$2|چک چنه]])",
+       "undo-summary-username-hidden": "خومثی بیئن وانئری $1 وا یه گل کاریار قام بیه",
        "cantcreateaccounttitle": "نبوئه حساو راس بکید",
+       "cantcreateaccount-text": "حساو دروس بیه و ا ای تیرنشون آی پی(<strong>$1</strong>) وه دس ای [[کاریار:$3|$3]] قلف بیه.\n\n\nدلیل دئه بیه وا $3 ها د<em>$2</em>",
+       "cantcreateaccount-range-text": "حساو دروس بیه وا تیرنشون آی پی که د پوشینه '''$1''' ، که وه ئم مینونه دار تیرنشون آی پی شما ئم هئ('''$4''')، وه دس [[کاریار:$3|$3]]قلف بیه.\n\nدلیل دئه بیه وا $3، \"$2\" ئه.",
        "viewpagelogs": "سی ای بلگه بوینتو.",
        "nohistory": "هیچ ویرگار ویرایشتی د ای بلگه نئ.",
        "currentrev": "آخرین دوواره دیئن",
        "rev-deleted-user": "(نوم کاروری جا وه جا بیه)",
        "rev-deleted-event": "(انجوم گر پهرستنومه جا وه جا بیه)",
        "rev-deleted-user-contribs": "[نوم کاروری یا نشونی آی پی جا وه جا بیه - چیا قام بیه د ور هوم یاریانه ویرایشت بکید]",
+       "rev-deleted-text-permission": "وانئری ای بلگه <strong>پاکسا بیه</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکسا کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساکردن].",
+       "rev-suppressed-text-permission": "وانئری بلگه <strong>پاکساگری</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکساگری کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساگری کردن].",
+       "rev-deleted-text-unhide": "وانئری ای بلگه <strong>پاکسا بیه</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکسا کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساکردن].\nشما  هنی تونیت [$1ای وانئری نه بونیت] ار بهاییت.",
+       "rev-suppressed-text-unhide": "وانئری بلگه <strong>پاکساگری</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکساگری کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساگری کردن].\nشما  هنی تونیت [$1ای وانئری نه بونیت] ار بهاییت.",
+       "rev-deleted-text-view": "وانئری ای بلگه <strong>پاکسا بیه</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکسا کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساکردن].",
+       "rev-suppressed-text-view": "وانئری بلگه <strong>پاکساگری</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکساگری کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساگری کردن].",
+       "rev-deleted-no-diff": "شما نمی تونیت ای فرخ نه بونیت سی یه که یه گل د وانئریا <strong>پاکسا بیه</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکساگری کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساگری کردن].",
+       "rev-suppressed-no-diff": "شما نمی تونیت ای فرخ نه بونیت سی یه که یه گل د وانئریا <strong>پاکسا بیه</strong>.",
+       "rev-deleted-unhide-diff": "وانئری ای بلگه <strong>پاکسا بیه</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکسا کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساکردن].\nشما  هنی تونیت [$1ای وانئری نه بونیت] ار بهاییت.",
+       "rev-suppressed-unhide-diff": "وانئری ای بلگه <strong>پاکساگری بیه</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکساگری کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساگری کردن].\nشما  هنی تونیت [$1ای وانئری نه بونیت] ار بهاییت.",
+       "rev-deleted-diff-view": "وانئری ای بلگه <strong>پاکسا بیه</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکسا کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساکردن].",
+       "rev-suppressed-diff-view": "وانئری بلگه <strong>پاکساگری</strong>.\nجزئیات هان د  [{{fullurl:{{#Special:Log}}/پاکساگری کردن|بلگه={{نوم کامل بلگه}}}} پهرستنومه پاکساگری کردن].",
        "rev-delundel": "آلشت وضئيت ديئن",
        "rev-showdeleted": "نشو دائن",
        "revisiondelete": "پاکسا کردن/زنه کردن وانئریا",
        "revdelete-nooldid-title": "وانیری تمارزی بیه نامعتوره",
+       "revdelete-nooldid-text": "شما وانئریا حاسنی نه سی انجوم دئن ای کار ره ون تیاری نکردیته، یا وانئریا تیارگر بیه وجود نارن، یا یه که شما میهایت وانئری ایسنی نه قام بکیت.",
        "revdelete-no-file": "فایل مشقص بیه وجود ناره.",
+       "revdelete-show-file-confirm": "شما د دل میهایت که وانئری پاکسا بیه ای جانیا نه بونیت \"<nowiki>$1</nowiki>\" د $2 تا $3؟",
        "revdelete-show-file-submit": "هری",
        "revdelete-selected-text": "{{جمی:$1|وانیری گل گر بیه|وانیری گل گر بیه}} د [[:$2]]:",
        "revdelete-selected-file": "{{جمی:$1|وانیری گل گر بیه|وانیری گل گر بیه}} د [[:$2]]:",
+       "logdelete-selected": "{{جمی:$1|پهرستنومه رخ ونیا انتخاو بیه|پهرستنومه رخ ونیا انتخاو بیه}}:",
+       "revdelete-text-text": "وانئریا پاکسا بیه هنی د بلگه ویرگار دیاری می کن،اما به شیا مینونه یاشو د مین خلک دیار نیئن.",
+       "revdelete-text-file": "وانئریا پاکسا بیه هنی د بلگه ویرگار دیاری می کن،اما به شیا مینونه یاشو د مین خلک دیار نیئن.",
+       "logdelete-text": "وانئریا پاکسا بیه هنی د بلگه ویرگار دیاری می کن،اما به شیا مینونه یاشو د مین خلک دیار نیئن.",
+       "revdelete-text-others": "دیوونداریا هنی می تونن د مینونه یا قام بیه دسرسی داشتوئن و ونه د نو زنه بکن، مه ر محدودیتیا اضافی میزوکاری بان.",
+       "revdelete-legend": "میزونکاری محدودیتیا دیار بیین.",
        "revdelete-hide-text": "متن دوواره دیئن",
        "revdelete-hide-image": "چی یا مئن فایل قام کو",
        "revdelete-hide-name": "آرمون و انجوم گر نه قام بکید",
        "revdelete-hide-comment": "چکسه نه ویرایشت بکید",
        "revdelete-hide-user": "نوم کاروری ویرایشتگر/نشونی آی پی",
+       "revdelete-hide-restricted": "پاکساگری کردن رسینه یا سی دیوونداریا و کسونا تر",
        "revdelete-radio-same": "آلشت نکید",
        "revdelete-radio-set": "قام بیه",
        "revdelete-radio-unset": "دیینی",
+       "revdelete-suppress": "پاکساگری کردن رسینه یا سی دیوونداریا و کسونا تر",
        "revdelete-unsuppress": "محدودیتیانه د وانیریا امباربیه جا وه جا بکید",
        "revdelete-log": "دلیل:",
        "revdelete-submit": "سی {{جمی:$1|وانیری|وانیریا}} انتخاو بیه وه کار بوریتو",
        "revdelete-success": "'''دیئن وانیری وه خوئی وه هنگوم بی.'''",
        "revdelete-failure": "'''دیئن وانیری وه خوئی وه هنگوم نبی:'''$1",
+       "logdelete-success": "<strong>پهرستنومه دیار بیین د خوئی میزونکاری بی.</strong>",
+       "logdelete-failure": "<strong>پهرستنومه دیار بیین نبوئه میزونکاری با.</strong> $1",
        "revdel-restore": "آلشت وضئيت ديئن",
        "pagehist": "ويرگار بلگه",
        "deletedhist": "ویرگار پاکسا بیه",
        "revdelete-reasonotherlist": "دلیل هنی",
        "revdelete-edit-reasonlist": "دلیلیا پاکسا کردنه نه ویرایشت بکید",
        "revdelete-offender": "نیسنه وانیری:",
+       "suppressionlog": "پهرستنومه پاکسازی",
        "mergehistory": "ویرگاریا بلگه نه یکی بکید",
        "mergehistory-header": "ای بلگه وه شما اجازه می ئه که وانیریانه ویرگار سرچشمه بلگه نه د یه گل بلگه تازه سریک سازی بکید.\nمطمئن بویت که ای آلشت د لحاظ ویرگاری د مین بلگه موندگار هئ.",
        "mergehistory-box": "دوواره دیئن دوبلگه ای نه سر یک سازی کو:",
        "prefs-watchlist-days": "روزیا نه د سیل برگ نشو دئه بو:",
        "prefs-watchlist-days-max": "$1 بیشترونه {{جمی:$1|روز|روزیا}}",
        "prefs-watchlist-edits-max": "شماره بیشترونه:1000",
+       "prefs-watchlist-token": "نشونه سیل برگ:",
        "prefs-misc": "شيوسن",
        "prefs-resetpass": "پاسورد نه آلشت بكيت",
        "prefs-changeemail": "نشونی ایمیل تو نه آلشت بکید",
        "right-viewmywatchlist": "سیل برگ خوتونه بوینیت",
        "right-viewmyprivateinfo": "دونسمنیا شصقی خوتونه بوینیت(چی نشونی ایمیل،نوم راستکی)",
        "right-editmyprivateinfo": "دونسمنیا شصقی خوتونه ویرایشت بکید(چی نشونی ایمیل،نوم راستکی)",
+       "right-editmyoptions": "اولویتیا تونه ویرایشت بکیت",
        "right-importupload": "دئن بلگه یا د یه گل جانیا سوار بیه",
        "right-unwatchedpages": "دیئن نوم گه بلگه یا دیئه نبیه",
        "right-userrights": "حقوق همه کاروریانه ویرایشت بکید",
index ed606d2..c16d21f 100644 (file)
        "talkpagelinktext": "Aptarimas",
        "specialpage": "Specialusis puslapis",
        "personaltools": "Asmeniniai įrankiai",
-       "postcomment": "Rašyti komentarą",
        "articlepage": "Rodyti turinio puslapį",
        "talk": "Aptarimas",
        "views": "Žiūrėti",
        "hidetoc": "slėpti",
        "collapsible-collapse": "Sutraukti",
        "collapsible-expand": "Išplėsti",
+       "confirmable-yes": "Taip",
+       "confirmable-no": "Ne",
        "thisisdeleted": "Žiūrėti ar atkurti $1?",
        "viewdeleted": "Rodyti $1?",
        "restorelink": "$1 {{PLURAL:$1|ištrintą keitimą|ištrintus keitimus|ištrintų keitimų}}",
        "externaldberror": "Yra arba išorinė autorizacijos duomenų bazės klaida arba jums neleidžiama atnaujinti jūsų išorinės paskyros.",
        "login": "Prisijungti",
        "nav-login-createaccount": "Prisijungti / sukurti paskyrą",
-       "loginprompt": "Įjunkite slapukus, jei norite prisijungti prie {{SITENAME}}.",
        "userlogin": "Prisijungti / sukurti paskyrą",
        "userloginnocreate": "Prisijungti",
        "logout": "Atsijungti",
        "searchprofile-advanced-tooltip": "Ieškoti skirtingose vardų srityse",
        "search-result-size": "$1 ({{PLURAL:$2|1 žodis|$2 žodžiai|$2 žodžių}})",
        "search-result-category-size": "{{PLURAL:$1|1 narys|$1 narių}} ({{PLURAL:$2|1 subkategorijoje|$2 subkategorijų}}, {{PLURAL:$3|1 failas|$3 failų}})",
-       "search-result-score": "Tinkamumas: $1%",
        "search-redirect": "(peradresavimas $1)",
        "search-section": "(skyrius $1)",
        "search-suggest": "Galbūt norėjote $1",
        "uploadwarning": "Dėmesio",
        "uploadwarning-text": "Prašome pakeisti failo aprašymą ir bandykite dar kartą.",
        "savefile": "Išsaugoti failą",
-       "uploadedimage": "įkėlė „[[$1]]“",
-       "overwroteimage": "įkėlė naują „[[$1]]“ versiją",
        "uploaddisabled": "Įkėlimai uždrausti",
        "copyuploaddisabled": "Įkėlimas pagal URL išjungtas.",
        "uploaddisabledtext": "Failų įkėlimai yra uždrausti.",
        "watchlist-details": "Stebima {{PLURAL:$1|$1 puslapis|$1 puslapiai|$1 puslapių}} neskaičiuojant aptarimų puslapių.",
        "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 $3 pakeitimus",
        "watchlist-options": "Stebimųjų sąrašo parinktys",
        "watching": "Įtraukiama į stebimųjų sąrašą...",
        "pageinfo-article-id": "Puslapio ID",
        "pageinfo-language": "Puslapio turinio kalba",
        "pageinfo-robot-policy": "Paieškos variklio būsena",
-       "pageinfo-robot-index": "Indeksuotas",
-       "pageinfo-robot-noindex": "Neindeksuotas",
+       "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į",
        "duplicate-defaultsort": "Įspėjimas: Numatytasis rikiavimo raktas „$2“ pakeičia ankstesnį numatytąjį rikiavimo raktą „$1“.",
        "version": "Versija",
        "version-extensions": "Įdiegti priedai",
+       "version-skins": "Išvaizda",
        "version-specialpages": "Specialieji puslapiai",
        "version-parserhooks": "Analizatoriaus gaudliai",
        "version-variables": "Kintamieji",
        "version-antispam": "Apsauga nuo šlamšto",
-       "version-skins": "Išvaizda",
        "version-other": "Kita",
        "version-mediahandlers": "Daugialypės terpės grotuvai",
        "version-hooks": "Gaudliai",
        "version-hook-name": "Gaudlio pavadinimas",
        "version-hook-subscribedby": "Užsakyta",
        "version-version": "(Versija $1)",
-       "version-license": "Licencija",
+       "version-license": "MediaWiki licencija",
        "version-poweredby-credits": "Šis projektas naudoja '''[https://www.mediawiki.org/ MediaWiki]''', autorystės teisės © 2001-$1 $2.",
        "version-poweredby-others": "kiti",
        "version-credits-summary": "Už indėlį kuriant [[Special:Version|MediaWiki]] dėkojame",
index 151cac7..717c2be 100644 (file)
        "talkpagelinktext": "sprīža",
        "specialpage": "Specialuo puslopa",
        "personaltools": "Muni reiki",
-       "postcomment": "Dalikt komentaru",
        "articlepage": "Apsavērt rakstīņu",
        "talk": "Sprīža",
        "views": "Vierīņi",
        "uploadbtn": "Īsyuteit failu",
        "uploadlogpage": "Davīnuotūs failu registrs",
        "savefile": "Izglobuot failu",
-       "uploadedimage": "davīnuots \"[[$1]]\"",
        "license": "Liceņceja:",
        "license-header": "Liceņceja",
        "imgfile": "fails",
index a133150..c4a82fa 100644 (file)
        "talkpagelinktext": "Sawihona",
        "specialpage": "Vohbik phek",
        "personaltools": "Mimal hmanruate",
-       "postcomment": "Thuhlawm thar",
        "articlepage": "A chhungthu enna",
        "talk": "Sawihona",
        "views": "Thlirna",
        "externaldberror": "Insawifiahna felfai lo a awm lo a nih loh vëk pawhin i pawnlam siangchan tihdanglam phalsak i ni lo a ni ang.",
        "login": "Luhna",
        "nav-login-createaccount": "Luhna / siangchan siamna",
-       "loginprompt": "{{SITENAME}}-a lût tùrin cookie i zuah zalen a ngai.",
        "userlogin": "Luhna/Siangchan siamna",
        "userloginnocreate": "Inziah luhna",
        "logout": "Chhuahna",
        "searchprofile-advanced-tooltip": "Hminghmun thlansa-ah zawng rawh",
        "search-result-size": "$1 ({{PLURAL:$2|Thumal 1 |Thumal $2 }})",
        "search-result-category-size": "{{PLURAL:$1|Tel 1 |Tel $1 }} ({{PLURAL:$2|Pawlpéng 1 |Pawlpéng $2}}, {{PLURAL:$3|Taksa 1 |Taksa $3 f}})",
-       "search-result-score": "Intûkna: $1%",
        "search-redirect": "($1 aţanga hruailuh)",
        "search-section": "(hlawm $1)",
        "search-suggest": "$1 i tihna a ni a ni zawk em?",
        "largefileserver": "Hë taksa hi rawngbawltu phaltir zât aia ritsak a ni.",
        "windows-nonascii-filename": "Hë wiki hian taksahminga chhinchhiahna bîk tel a pawm thei lo.",
        "savefile": "Taksa dahṭhatna",
-       "uploadedimage": "hlankai: \"[[$1]]\"",
        "uploadvirus": "I taksa hlànkài tumin hrik a päi!\nChanchin kimchang: $1",
        "upload-source": "Hnar taksa",
        "sourcefilename": "Hnar taksahming:",
index 0e6f431..b6813d7 100644 (file)
        "powersearch-togglelabel": "Pārbaudīt:",
        "powersearch-toggleall": "Viss",
        "powersearch-togglenone": "Neviena",
+       "powersearch-remember": "Atcerēties izvēli turpmākajā meklēšanā",
        "search-external": "Ārējā meklēšana",
        "searchdisabled": "Meklēšana {{grammar:lokatīvs|{{SITENAME}}}} šobrīd ir atslēgta darbības traucējumu dēļ.\nPagaidām vari meklēt, izmantojot Google vai Yahoo.\nŅem vērā, ka meklētāju indeksētais {{grammar:ģenitīvs|{{SITENAME}}}} saturs var būt novecojis.",
        "preferences": "Izvēles",
index 91574c5..e23125f 100644 (file)
@@ -12,7 +12,8 @@
                        "Xiaomingyan",
                        "Yanteng3",
                        "아라",
-                       "LNDDYL"
+                       "LNDDYL",
+                       "Jason924tw"
                ]
        },
        "tog-underline": "鏈墊線:",
        "history_short": "誌",
        "updatedmarker": "新也",
        "printableversion": "印本",
-       "permalink": "æ\81\86é\8f\88",
+       "permalink": "æ\81\86é\80\9a",
        "print": "印",
        "view": "察",
        "edit": "纂",
        "copyright": "文奉$1行。",
        "copyrightpage": "{{ns:project}}:版權",
        "currentevents": "世事",
-       "currentevents-url": "Project:世事",
+       "currentevents-url": "Wikipedia:世事",
        "disclaimers": "免責宣",
        "disclaimerpage": "Project:免責宣",
        "edithelp": "助纂塾",
        "revertmerge": "悔併",
        "mergelogpagetext": "下乃近頁之誌併至二頁之表也。",
        "history-title": "$1之誌",
-       "difference-title": "$1各本之",
+       "difference-title": "$1各本之",
        "difference-title-multipage": "$1、$2之异",
        "difference-multipage": "(辨頁)",
        "lineno": "第$1行:",
        "shown-title": "每頁示 $1",
        "viewprevnext": "見($1 {{int:pipe-separator}} $2)($3)",
        "searchmenu-exists": "'''在此wiki中有頁為\"[[:$1]]\"。'''",
-       "searchmenu-new": "'''在此wiki上建頁\"[[:$1]]\"!'''",
+       "searchmenu-new": "'''在此共筆上建頁\"[[:$1]]\"!'''",
        "searchprofile-articles": "容",
        "searchprofile-images": "媒",
        "searchprofile-everything": "全",
        "recentchanges-label-minor": "此乃細纂",
        "recentchanges-label-bot": "此乃機纂",
        "recentchanges-label-unpatrolled": "是纂未巡",
-       "recentchanges-legend-newpage": "$1 - 新頁",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}}([[Special:NewPages|新灶]])",
        "rcnotefrom": "下為自'''$2'''至'''$1'''之易也。",
        "rclistfrom": "自$3 $2起之易也",
        "rcshowhideminor": "$1校",
        "unusedtemplates": "墨乾",
        "unusedtemplatestext": "此表閒模,篤刪前惠考支鏈。",
        "unusedtemplateswlh": "支鏈",
-       "randompage": "風掀",
+       "randompage": "清風翻書",
        "randompage-nopages": "下列{{PLURAL:$2|名集}}中無頁也:$1",
        "randomincategory-selectcategory-submit": "往",
        "randomredirect": "任渡",
        "mostcategories": "跨船",
        "mostimages": "名檔",
        "mostrevisions": "屢審",
-       "prefixindex": "以é\8f\88å¤\96æ\9f¥",
+       "prefixindex": "ä¾\9då\90\8dç´¢å¼\95",
        "shortpages": "短篇",
        "longpages": "長言",
        "deadendpages": "此無路也",
        "namespace": "名冊:",
        "invert": "反相",
        "blanknamespace": "主",
-       "contributions": "{{GENDER:$1|簿}} 之功績",
+       "contributions": "功績",
        "contributions-title": "$1之功績",
        "mycontris": "吾績",
        "contribsub2": "$1勛($2)",
        "spambot_username": "MediaWiki清濫",
        "spam_reverting": "還新審之無鏈$1者。",
        "spam_blanking": "審皆鏈$1,遂令白頁。",
+       "pageinfo-header-restrictions": "頁錮",
        "pageinfo-toolboxlink": "文訊",
        "markaspatrolleddiff": "派哨",
        "markaspatrolledtext": "哨此報",
index f6da81d..bbae542 100644 (file)
        "recentchangeslinked-to": "Na niçinen butʼkʼa yeine na niçinen butʼkʼaşa kʼontʼaktʼi meçameri na renan butʼkʼape ko3ʼiri",
        "upload": "Dosya doloxe kamaxvi",
        "uploadlogpage": "Dosya oncğonu kʼayitʼepe",
-       "uploadedimage": "Siteşa na incğonen resimi: \"[[$1]]\"",
        "license-header": "Lisans",
        "file-anchor-link": "Dosya",
        "filehist": "Dosyaşi tarixi",
index a652ff8..90ac544 100644 (file)
        "talkpagelinktext": "Dopokan",
        "specialpage": "Kaca khusus",
        "personaltools": "Piranti pribadi",
-       "postcomment": "Bagéyan anyar",
        "articlepage": "Deleng isi tulisan",
        "talk": "bahas",
        "views": "Tampilan",
        "externaldberror": "Ana kesalahan otentikasi basis data utawa Rika ora olih nglakokna pemutakhiran maring akun eksternale Rika.",
        "login": "Melebu",
        "nav-login-createaccount": "Mlebu / gawe kaca anggota (akun)",
-       "loginprompt": "Rika kudu ngaktifna ''cookies'' ben teyeng mlebu log maring {{SITENAME}}.",
        "userlogin": "Melebu / gawe kaca anggota (account)",
        "userloginnocreate": "Mlebu log",
        "logout": "Metu Log",
        "searchprofile-advanced-tooltip": "Goleti nang bilik jeneng biasa",
        "search-result-size": "$1 ({{PLURAL:$2|1 tembung|$2 tembung}})",
        "search-result-category-size": "{{PLURAL:$1|1 anggota|$1 anggota}} ({{PLURAL:$2|1 subkategori|$2 subkategori}}, {{PLURAL:$3|1 berkas|$3 berkas}})",
-       "search-result-score": "Relevansi: $1%",
        "search-redirect": "(pangalihan $1)",
        "search-section": "(bagiyan $1)",
        "search-suggest": "Apa maksude Rika kuwe: $1",
        "ignorewarning": "Lirwakna pèngetan lan langsung simpen berkas.",
        "ignorewarnings": "Lirwakna pèngetan apa baen",
        "minlength1": "Jeneng berkas seora-orane kudu ana seaksara.",
-       "uploadedimage": "ngunggahna\"[[$1]]\"",
        "license": "Jenis lisènsi:",
        "license-header": "Jinis lisènsi",
        "listfiles_date": "Tanggal",
index 9ea3ca3..b885a3f 100644 (file)
        "searchprofile-advanced-tooltip": "Hitady ny anaran-tsehatra ho an'ny fikarohana",
        "search-result-size": "$1 ({{PLURAL:$2|teny|teny}} $2)",
        "search-result-category-size": "Mpiray sokajy $1{{PLURAL:$1}} (zana-tsokajy $2{{PLURAL:}}, rakitra $3{{PLURAL:}})",
-       "search-result-score": "Fifanarahana : $1%",
        "search-redirect": "(redirect avy amin'ny/amin'i $1)",
        "search-section": "(fizaràna $1)",
        "search-file-match": "(miady amin'ny votoatin-drakitra)",
        "uploadwarning": "Fampitandremana",
        "uploadwarning-text": "Ovay ny fanoritan' ilay rakitra ary andrao fanindroany.",
        "savefile": "Tehirizo ny rakitra",
-       "uploadedimage": "tonga ny rakitra\"[[$1]]\"",
-       "overwroteimage": "nampiditra versiona vaovao ny «[[$1]]»",
        "uploaddisabled": "Miala tsiny! Tsy azo atao ny mandefa rakitra.",
        "copyuploaddisabled": "Tsy alefa ny fandefasan-drakitra amin'ny alalan'ny URL.",
        "uploaddisabledtext": "Tsy afaka andefasana rakitra aloha eto amin'ity wiki ity.",
        "watchlist-details": "Pejy $1{{PLURAL:}} ao amin'ny lisitry ny pejy arahanao, tsy isaina ny pejin-dresaka.",
        "wlheader-enotif": "Alefa ny fampilazana amin'ny mailaka.",
        "wlheader-showupdated": "Aseho '''sorabaventy''' ny pejy niova taorian'ny famangianao azy farany.",
+       "wlnote": "Eo ambany dia ahitana ny {{PLURAL:$1|fiovana farany indrindra|ny fiovana ''$1'' farany}} natao tanatin'ny adin'ny {{PLURAL:$2|iray|'''$2'''}}, nanomboka ny $3, $4.",
        "wlshowlast": "Haneho ny $1 ora farany, ny $2 andro farany na $3",
        "watchlist-options": "Safidy ny lisitry ny pejy arahana",
        "watching": "Fanarahana...",
index 99d471f..c1e5e2a 100644 (file)
        "talkpagelinktext": "Каҥашымаш",
        "specialpage": "Лӱмын ыштыме лаштык",
        "personaltools": "Паша ӱзгар",
-       "postcomment": "У ужаш",
        "articlepage": "Лаштыкыште возымым ончыкташ",
        "talk": "Каҥашымаш",
        "views": "Ончалаш",
        "yourdomainname": "Тендан домен:",
        "login": "Шке денет палдаре",
        "nav-login-createaccount": "Пураш/Регистрацийым эрте",
-       "loginprompt": "{{SITENAME}} шке денет палдарыме деч ончыч компьютерыштет «cookies»-ым чӱктыман.",
        "userlogin": "Пураш/Регистрацийым эрташ",
        "logout": "Лекташ",
        "userlogout": "Лекташ",
        "uploadlogpage": "Оптымаш-влак журнал",
        "filedesc": "Файл нерген кӱчыкын увертараш",
        "fileuploadsummary": "Тидын нерген кӱчыкын:",
-       "uploadedimage": "«[[$1]]» пуртыш",
        "watchthisupload": "Тиде файлым эскераш",
        "license-header": "Лицензирований",
        "imgfile": "файл",
index 01cd28e..2af3d81 100644 (file)
        "talkpagelinktext": "maota",
        "specialpage": "Laman istimewa",
        "personaltools": "Pakakeh pribadi",
-       "postcomment": "Bagian baru",
        "articlepage": "Lihek isi laman",
        "talk": "Rundiang",
        "views": "Caliak",
        "externaldberror": "Alah tajadi kasalahan otentikasi basis data eksternal atau Sanak indak diizinan malakuan pabaruan tahadok akun eksternal Sanak.",
        "login": "Masuak log",
        "nav-login-createaccount": "Masuak log / buek akun",
-       "loginprompt": "Sanak musti mangaktipan ''cookies'' pado paramban Sanak untuak dapek masuak log ka {{SITENAME}} ko.",
        "userlogin": "Masuak log / buek akun",
        "userloginnocreate": "Masuak log",
        "logout": "Kalua log",
        "searchprofile-advanced-tooltip": "Pacarian di ruang namo tatantu",
        "search-result-size": "$1 ({{PLURAL:$2|$2 kato}})",
        "search-result-category-size": "{{PLURAL:$1|$1 anggota}} ({{PLURAL:$2|$2 subkategori}}, {{PLURAL:$3|$3 berkas}})",
-       "search-result-score": "Relevansi: $1%",
        "search-redirect": "(pangaliahan $1)",
        "search-section": "(bagian $1)",
        "search-suggest": "Mungkin makasuiknyo: $1",
        "filetype-bad-ie-mime": "Indak dapek mamuek berkas dek Internet Explorer mandeteksinyo sabagai \"$1\", nan indak diizinkan dan marupokan tipe berkas bapotensi bahayo.",
        "fileexists-thumbnail-yes": "Berkas ko nampaknyo marupoan gambar nan ukurannyo dipaketek ''(miniatua)''. [[$1|thumb]]\nCubo pareso berkas <strong>[[:$1]]</strong> tasabuik.\nKoq berkas tu samemang marupoan gambar dalam ukuran aslinyo, Sanak indak paralu untuak mamuak baliak miniatur lainnyo.",
        "file-thumbnail-no": "Namo berkas dimulai jo <strong>$1</strong>.\nNampaknyo berkas ko marupoan gambar jo ukuran dipaketek ''(miniatua)''.\nKoq Sanak ado versi resolusi panuah dari gambar ko, cubolah muekan berkas tasabuik. Koq indak, harap ubah namo berkas ko.",
-       "uploadedimage": "mamuek \"[[$1]]\"",
        "upload-source": "Berkas sumber",
        "sourcefilename": "Namo berkas sumber:",
        "sourceurl": "URL sumber:",
        "unwatchthispage": "Batal pantau laman ko",
        "watchlist-details": "{{PLURAL:$1|$1 laman}} dalam daftar pantau Sanak, indak tamasuak laman rundiangnyo.",
        "wlheader-showupdated": "Laman nan alah barubah sajak kunjuangan tarakhia Sanak ditunjuakan jo '''hurup taba'''",
+       "wlnote": "Di bawah ko ado $1 {{PLURAL:$1|parubahan}} dalam {{PLURAL:$2|'''$2''' jam}} iko, sampai tanggal $3, pukua $4.",
        "wlshowlast": "Tunjuakan $1 jam parubahan dalam $2 hari tarakhia $3",
        "watchlist-options": "Piliahan daftar pantau",
        "watching": "Mamantau...",
        "duplicate-defaultsort": "'''Peringatan:''' Kunci panguruitan default \"$2\" sabalunnyo mangabaikan kunci panguruitan default \"$1\".",
        "version": "Versi",
        "version-extensions": "Ekstensi tarinstal",
+       "version-skins": "Kulik",
        "version-specialpages": "Laman istimewa",
        "version-parserhooks": "Kaik parser",
        "version-variables": "Variabel",
        "version-antispam": "Pancagahan spam",
-       "version-skins": "Kulik",
        "version-other": "Lain-lain",
        "version-version": "(Versi $1)",
        "version-license": "Lisensi",
index fd0ac7f..7423a38 100644 (file)
@@ -14,7 +14,8 @@
                        "Spacebirdy",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Milicevic01"
                ]
        },
        "tog-underline": "Потцртување на врски:",
        "undo-failure": "Уредувањето не можеше да се откаже заради меѓувремени спротиставени уредувања.",
        "undo-norev": "Измената не можеше да биде вратена бидејќи не постои или била избришана.",
        "undo-nochange": "Се чини дека измената (уредувањето) е веќе вратена.",
-       "undo-summary": "Откажано уредувањето $1 на уредникот [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]])",
+       "undo-summary": "Откажано уредувањето $1 на уредникот [[Special:Contribs/$2|$2]] ([[User talk:$2|разговор]])",
        "undo-summary-username-hidden": "Поништи ја преработката $1 на скриен корисник",
        "cantcreateaccounttitle": "Не може да се создаде корисничка сметка",
        "cantcreateaccount-text": "Создавањето на корисничка сметка од оваа IP-адреса ('''$1''') е блокирано од страна на [[User:$3|$3]].\n\nОбразложението дадено од страна на $3 е ''$2''",
        "delete-edit-reasonlist": "Уреди причини за бришење",
        "delete-toobig": "Оваа страница има долга историја на уредување, преку $1 {{PLURAL:$1|преработка|преработки}}.\nБришењето на ваквии страници е забрането со цел {{SITENAME}} да се заштити од оштетувања.",
        "delete-warning-toobig": "Оваа страница има долга историја на уредување, преку $1 {{PLURAL:$1|преработка|преработки}}.\nБришењето може да предизвика проблеми при работењето на базата на податоци на {{SITENAME}};\nпродолжете доколку сте сигруни дека треба тоа да го сторите.",
+       "delete-cantedit": "Не можете да ја избришете страницава зошто немате дозвола да ја уредувате.",
        "deleting-backlinks-warning": "'''Предупредување:''' До страницата што сакате да ја избришете водат [[Special:WhatLinksHere/{{FULLPAGENAME}}|други страници]] или пак се превметнуваат во неа.",
        "rollback": "Отповикај промени",
        "rollback_short": "Отповикај",
index 8eb34ad..bb807ba 100644 (file)
        "invalidtitle-knownnamespace": "നാമമേഖല \"$2\", എഴുത്ത് \"$3\" എന്നിവ ഉപയോഗിച്ചുള്ള അസാധുവായ തലക്കെട്ട്",
        "invalidtitle-unknownnamespace": "അപരിചിതമായ നാമമേഖലാ സംഖ്യ $1, എഴുത്ത് \"$2\" എന്നിവ ഉപയോഗിച്ചുള്ള അസാധുവായ തലക്കെട്ട്",
        "exception-nologin": "ലോഗിൻ ചെയ്തിട്ടില്ല",
-       "exception-nologin-text": "ഈ വിക്കിയിൽ ഈ താൾ അല്ലെങ്കിൽ പ്രവൃത്തി ലഭ്യമാകാൻ ദയവായി [[Special:Userlogin|പ്രവേശിക്കുക]].",
+       "exception-nologin-text": "ഈ വിക്കിയിൽ ഈ താൾ അല്ലെങ്കിൽ പ്രവൃത്തി ലഭ്യമാകാൻ ദയവായി പ്രവേശിക്കുക.",
        "exception-nologin-text-manual": "ഈ താൾ അല്ലെങ്കിൽ പ്രവൃത്തി ഉപയോഗിക്കാൻ ദയവായി $1.",
        "virus-badscanner": "തെറ്റായ ക്രമീകരണങ്ങൾ: അപരിചിതമായ വൈറസ് തിരച്ചിൽ ഉപാധി :  ''$1''",
        "virus-scanfailed": "വൈറസ് സ്കാനിങ് പരാജയപ്പെട്ടു (code $1)",
        "parser-template-recursion-depth-warning": "ഫലകത്തിന്റെ പുനരാവർത്തന ആഴത്തിന്റെ പരിധി കഴിഞ്ഞിരിക്കുന്നു ($1)",
        "language-converter-depth-warning": "ഭാഷ മാറ്റൽ ഉപകരണത്തിന്റെ ആഴത്തിന്റെ പരിധി കവിഞ്ഞിരിക്കുന്നു ($1)",
        "node-count-exceeded-category": "നോഡ്-എണ്ണം അധികരിച്ച താളുകൾ",
-       "node-count-exceeded-category-desc": "à´¨àµ\8bà´¡àµ\8d-à´\8eà´£àµ\8dà´£à´\82 à´\85ധിà´\95à´°à´¿à´\9aàµ\8dà´\9a à´¤à´¾à´³àµ\81à´\95ൾà´\95àµ\8dà´\95àµ\81à´³àµ\8dà´³ à´µàµ¼à´\97àµ\8dà´\97à´\82.",
-       "node-count-exceeded-warning": "താൾ നോഡ്-എണ്ണം അധികരിച്ചിരിക്കുന്നു",
+       "node-count-exceeded-category-desc": "താളിൽ à´¨àµ\8bà´¡àµ\8d-à´\8eà´£àµ\8dà´£à´\82 à´\85ധിà´\95à´°à´¿à´\9aàµ\8dà´\9aà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81.",
+       "node-count-exceeded-warning": "താളിൽ നോഡ്-എണ്ണം അധികരിച്ചിരിക്കുന്നു",
        "expansion-depth-exceeded-category": "വികസന ആഴം അധികരിച്ച താളുകൾ",
-       "expansion-depth-exceeded-category-desc": "വിà´\95സന à´\86à´´à´\82 à´\85ധിà´\95à´°à´¿à´\9aàµ\8dà´\9a à´¤à´¾à´³àµ\81à´\95ൾà´\95àµ\8dà´\95àµ\81à´³àµ\8dà´³ à´µàµ¼à´\97àµ\8dà´\97à´\82.",
+       "expansion-depth-exceeded-category-desc": "താളിലàµ\86 à´µà´¿à´\95സന à´\86à´´à´\82 à´\85ധിà´\95à´°à´¿à´\9aàµ\8dà´\9aà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81.",
        "expansion-depth-exceeded-warning": "താളിന്റെ വികസന ആഴം അധികരിച്ചിരിക്കുന്നു",
        "parser-unstrip-loop-warning": "അൺസ്ട്രിപ്പ് (Unstrip) പാഴ്സർ ഫങ്ഷനിൽ കുരുക്ക് കണ്ടെത്തി",
        "parser-unstrip-recursion-limit": "അൺസ്ട്രിപ്പ് (Unstrip) പാഴ്സർ ഫങ്ഷന്റെ പുനരാവർത്തന പരിധി അധികരിച്ചിരിക്കുന്നു ($1)",
        "preferences": "ക്രമീകരണങ്ങൾ",
        "mypreferences": "ക്രമീകരണങ്ങൾ",
        "prefs-edits": "ആകെ തിരുത്തുകൾ:",
-       "prefsnologintext2": "താങ്കളുടെ ഉപയോക്തൃക്രമീകരണങ്ങൾ സജ്ജീകരിക്കാൻ ദയവായി $1.",
+       "prefsnologintext2": "താങ്കളുടെ ഉപയോക്തൃക്രമീകരണങ്ങൾ സജ്ജീകരിക്കാൻ ദയവായി പ്രവേശിക്കുക.",
        "prefs-skin": "ദൃശ്യരൂപം",
        "skin-preview": "എങ്ങനെയുണ്ടെന്നു കാണുക",
        "datedefault": "ക്രമീകരണങ്ങൾ വേണ്ട",
        "post-expand-template-inclusion-category-desc": "എല്ലാ ഫലകങ്ങളും വികസിപ്പിച്ചു കഴിയുമ്പോൾ, താളിന്റെ വലിപ്പം <code>$wgMaxArticleSize</code> എന്നതിലും കൂടുതലാവുമെന്നതിനാൽ, ചില ഫലകങ്ങൾ വികസിപ്പിച്ചിരുന്നില്ല.",
        "post-expand-template-argument-category-desc": "ഫലകത്തിലേയ്ക്കുള്ള ചരം വികസിപ്പിച്ച ശേഷം (<code>{{{പന}}}</code> പോലെയുള്ള മൂന്ന് കോഷ്ഠകങ്ങളിലെ എഴുത്ത്), താളിന്റെ വലിപ്പം <code>$wgMaxArticleSize</code> എന്നതിലും കൂടുതലായി.",
        "expensive-parserfunction-category-desc": "നിരവധി വ്യയമേറിയ പാഴ്സർ ഫങ്ഷനുകൾ ( #എങ്കിൽ പോലെയുള്ളവ) താളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്നു. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit] കാണുക.",
-       "broken-file-category-desc": "താളിൽ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµ\8dലാതàµ\8dà´¤ à´ªàµ\8dരമാണതàµ\8dതിലàµ\8bà´\9fàµ\8dà´\9fàµ\8d à´\95à´£àµ\8dണി à´\9aàµ\87ർതàµ\8dതിà´\9fàµ\8dà´\9fàµ\81à´£àµ\8dà´\9fàµ\86à´\99àµ\8dà´\95ിൽ à´µàµ¼à´\97àµ\8dà´\97à´\82 à´\9aàµ\87ർà´\95àµ\8dà´\95à´ªàµ\8dà´ªàµ\86à´\9fàµ\81à´\82.",
+       "broken-file-category-desc": "താളിൽ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµ\8dലാതàµ\8dà´¤ à´ªàµ\8dരമാണതàµ\8dതിലàµ\8bà´\9fàµ\8dà´\9fàµ\8d à´\95à´£àµ\8dണി à´\9aàµ\87ർതàµ\8dതിà´\9fàµ\8dà´\9fàµ\81à´£àµ\8dà´\9fàµ\8d (നിലവിലിലàµ\8dലാതàµ\8dà´¤ à´ªàµ\8dരമാണà´\82 à´\89ൾപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതാനàµ\81à´³àµ\8dà´³ à´\95à´£àµ\8dണി).",
        "hidden-category-category-desc": "ഈ വർഗ്ഗത്തിൽ <code><nowiki>__HIDDENCAT__</nowiki></code> ഉള്ളതിനാൽ, താളുകളിലെ വർഗ്ഗങ്ങളുടെ കണ്ണികൾ കാണിക്കുന്ന പെട്ടിയിൽ സ്വതേ പ്രത്യക്ഷപ്പെടുന്നതല്ല.",
        "trackingcategories-nodesc": "വിവരണം ലഭ്യമല്ല.",
        "trackingcategories-disabled": "വർഗ്ഗം നിർജ്ജീവമാക്കിയിരിക്കുന്നു",
        "mywatchlist": "ശ്രദ്ധിക്കുന്നവ",
        "watchlistfor2": "ഉപയോക്താവ്:$1 $2",
        "nowatchlist": "താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ഇനങ്ങളൊന്നുമില്ല.",
-       "watchlistanontext": "താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക കാണുവാനോ തിരുത്തുവാനോ $1.",
+       "watchlistanontext": "താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക കാണുവാനോ തിരുത്തുവാനോ പ്രവേശിക്കുക.",
        "watchnologin": "ലോഗിൻ ചെയ്തിട്ടില്ല",
        "addwatch": "ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിലേക്കു ചേർക്കുക",
        "addedwatchtext": "താങ്കൾ [[Special:Watchlist|ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിലേക്ക്]] \"[[:$1]]\" എന്ന ഈ താൾ ചേർത്തിരിക്കുന്നു. ഇനി മുതൽ ഈ താളിലും ബന്ധപ്പെട്ട സം‌വാദം താളിലും ഉണ്ടാകുന്ന മാറ്റങ്ങൾ ആ പട്ടികയിൽ ദൃശ്യമാവും.",
        "delete-edit-reasonlist": "മായ്ക്കലിന്റെ കാരണം തിരുത്തുക",
        "delete-toobig": "ഈ താളിനു വളരെ വിപുലമായ തിരുത്തൽ ചരിത്രമുണ്ട്. $1 മേൽ {{PLURAL:$1|പതിപ്പുണ്ട്|പതിപ്പുകളുണ്ട്}}. ഇത്തരം താളുകൾ മായ്ക്കുന്നതു {{SITENAME}} സം‌രംഭത്തിന്റെ നിലനില്പ്പിനെ തന്നെ ബാധിക്കുമെന്നതിനാൽ ഈ താൾ മായ്ക്കുന്നതിനുള്ള അവകാശം പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.",
        "delete-warning-toobig": "ഈ താളിനു വളരെ വിപുലമായ തിരുത്തൽ ചരിത്രമുണ്ട്. അതായത്, ഇതിനു് $1 മേൽ {{PLURAL:$1|പതിപ്പുണ്ട്|പതിപ്പുകളുണ്ട്}}. ഇത്തരം താളുകൾ മായ്ക്കുന്നതു {{SITENAME}} സം‌രംഭത്തിന്റെ ഡാറ്റാബേസ് ഓപ്പറേഷനെ ബാധിച്ചേക്കാം. അതിനാൽ വളരെ ശ്രദ്ധാപൂർവ്വം തുടർനടപടികളിലേക്കു നീങ്ങുക.",
+       "delete-cantedit": "ഈ താൾ തിരുത്തുവാൻ അനുമതി ഇല്ലാത്തതിനാൽ താങ്കൾക്ക് ഈ താൾ മായ്ക്കാനാവില്ല.",
        "deleting-backlinks-warning": "'''മുന്നറിയിപ്പ്:''' മറ്റു താളുകളിൽ നിന്നും [[Special:WhatLinksHere/{{FULLPAGENAME}}|താളിലേയ്ക്കുള്ള കണ്ണികൾ]] അല്ലെങ്കിൽ ഉൾപ്പെടുത്തിയിട്ടുള്ള താളുകൾ താങ്കൾ മായ്ക്കാൻ പോവുകയാണ്.",
        "rollback": "തിരുത്തലുകൾ റോൾബാക്ക് ചെയ്യുക",
        "rollback_short": "റോൾബാക്ക്",
        "autoblockid": "സ്വയം തടയൽ #$1",
        "block": "ഉപയോക്താവിനെ തടയുക",
        "unblock": "ഉപയോക്താവിനുള്ള തടയൽ നീക്കുക",
-       "blockip": "ഉപയോക്താവിനെ തടയുക",
+       "blockip": "{{GENDER:$1|ഉപയോക്താവിനെ}} തടയുക",
        "blockip-legend": "ഉപയോക്താവിനെ തടയുക",
        "blockiptext": "ഏതെങ്കിലും ഐ.പി. വിലാസത്തേയോ ഉപയോക്താവിനേയോ തടയുവാൻ താഴെയുള്ള ഫോം ഉപയോഗിക്കുക.\n[[{{MediaWiki:Policy-url}}|വിക്കിയുടെ നയം]] അനുസരിച്ച് നശീകരണപ്രവർത്തനം തടയാൻ മാത്രമേ ഇതു ചെയ്യാവൂ.\nതടയാനുള്ള വ്യക്തമായ കാരണം (ഏതു താളിലാണു നശീകരണപ്രവർത്തനം നടന്നത് എന്നതടക്കം) താഴെ രേഖപ്പെടുത്തിയിരിക്കണം.",
        "ipaddressorusername": "ഐ.പി. വിലാസം അല്ലെങ്കിൽ ഉപയോക്തൃനാമം:",
        "ipb-unblock-addr": "$1 അംഗത്വത്തിനുള്ള തടയൽ നീക്കുക",
        "ipb-unblock": "ഒരു ഐ.പി. വിലാസത്തിനോ ഉപയോക്താവിനോ ഉള്ള തടയൽ നീക്കംചെയ്യുക",
        "ipb-blocklist": "നിലവിലുള്ള തടയലുകൾ",
-       "ipb-blocklist-contribs": "$1 നൽകിയ സംഭാവനകൾ",
+       "ipb-blocklist-contribs": "{{GENDER:$1|$1}} നൽകിയ സംഭാവനകൾ",
        "unblockip": "ഉപയോക്താവിനുള്ള തടയൽ നീക്കുക",
        "unblockiptext": "മുൻപ് തടയപ്പെട്ട ഐ.പി.യുടേയും ഉപയോക്താവിന്റേയും തിരുത്തൽ അവകാശം പുനഃസ്ഥാപിക്കാൻ താഴെയുള്ള ഫോം ഉപയോഗിക്കുക.",
        "ipusubmit": "ഈ വിലക്ക് ഒഴിവാക്കുക",
        "log-name-pagelang": "ഭാഷ മാറ്റലിന്റെ രേഖ",
        "log-description-pagelang": "താളുകളുടെ ഭാഷകൾ മാറ്റിയതിന്റെ രേഖകൾ ഇവിടെക്കാണാം.",
        "logentry-pagelang-pagelang": "$3 എന്ന താളിന്റെ ഭാഷയായിരുന്ന $4, $1 $5 ആയി {{GENDER:$2|മാറ്റി}}.",
+       "default-skin-not-found": "അയ്യോ! താങ്കളുടെ വിക്കിയുടെ സ്വതേയുള്ള ദൃശ്യരൂപമായ (<code>$wgDefaultSkin</code>), <code>$1</code>, ലഭ്യമല്ല.\n\nതാങ്കളുടെ ഇൻസ്റ്റലേഷനിൽ താഴെക്കൊടുക്കുന്ന ദൃശ്യരൂപങ്ങൾ ഉണ്ടാകേണ്ടതാണ്. അവ എങ്ങനെ ക്രമീകരിക്കാം എന്നും സ്വതേ വേണ്ടത് എങ്ങനെ സജ്ജമാക്കാം എന്നും [https://www.mediawiki.org/wiki/Manual:Skin_configuration ദൃശ്യരൂപം സജ്ജമാക്കൽ സഹായിയിൽ] കാണുക.\n\n$2\n\n; താങ്കൾ മീഡിയവിക്കി ഇൻസ്റ്റോൾ ചെയ്തതേ ഉള്ളുവെങ്കിൽ:\n: ഗിറ്റിൽ നിന്ന് അല്ലെങ്കിൽ മറ്റെങ്കിലും മാർഗ്ഗം ഉപയോഗിച്ച് സോഴ്സ് കോഡ് നേരിട്ട് ഉപയോഗിക്കുകയായിരിന്നെങ്കിൽ ഇത് സംഭവിച്ചേക്കാം. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's ദൃശ്യരൂപ ഡയറക്ടറിയിൽ നിന്ന്], ഇനിക്കൊടുക്കുന്ന മാർഗ്ഗങ്ങൾ ഉപയോഗിച്ച് ഏതാനം ദൃശ്യരൂപങ്ങൾ ഇൻസ്റ്റോൾ ചെയ്യാൻ നോക്കുക:\n:* [https://www.mediawiki.org/wiki/Download ടാർബോൾ ഇൻസ്റ്റോളർ] ഡൗൺലോഡ് ചെയ്യുക, അതിൽ നിരവധി ദൃശ്യരൂപങ്ങളും അനുബന്ധങ്ങളും ഉൾപ്പെടുത്തിയിരിക്കുന്നു. അതിൽ നിന്നും താങ്കൾക്ക് <code>skins/</code> ഡയറക്ടറി പകർത്താവുന്നതാണ്.\n:* താങ്കളുടെ മീഡിയവിക്കി ഇൻസ്റ്റലേഷന്റെ <code>skins/</code> ഡയറക്ടറിയിലേക്ക് ഗിറ്റ് ഉപയോഗിച്ച് <code>mediawiki/skins/*</code> റെപ്പോസിറ്ററികളിലൊന്ന് ക്ലോൺ ചെയ്യുക.\n: താങ്കളൊരു മീഡിയവിക്കി ഡവലപ്പറാണെങ്കിൽ ഇത് താങ്കളുടെ ഗിറ്റ് ഡെപ്പോസിറ്ററിയെ ബാധിക്കുന്നതല്ല.\n\n; മീഡിയവിക്കി താങ്കൾ അപ്ഗ്രേഡ് ചെയ്തതേ ഉള്ളുവെങ്കിൽ:\n: മീഡിയവിക്കി 1.24 ഒപ്പം അതിനു ശേഷമുള്ളവയും ഇൻസ്റ്റോൾ ചെയ്തിട്ടുള്ള ദൃശ്യരൂപങ്ങൾ സ്വതേ സജ്ജമാക്കുന്നില്ല ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery ദൃശ്യരൂപം ഓട്ടോഡിസ്കവറി സഹായം] കാണുക). ഇൻസ്റ്റോൾ ചെയ്തിട്ടുള്ള ദൃശ്യരൂപങ്ങൾ സജ്ജമാക്കുന്നതിനായി ഇനിക്കൊടുക്കുന്ന വരികൾ <code>LocalSettings.php</code> എന്നതിലോട്ട് പകർത്തുക:\n\n<pre>$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; താങ്കൾ മീഡിയവിക്കി ഇൻസ്റ്റോൾ ചെയ്തതേ അല്ലെങ്കിൽ അപ്‌ഗ്രേഡ് ചെയ്തതേ ഉള്ളുവെങ്കിൽ:\n: ഗിറ്റിൽ നിന്ന് അല്ലെങ്കിൽ മറ്റെങ്കിലും മാർഗ്ഗം ഉപയോഗിച്ച് സോഴ്സ് കോഡ് നേരിട്ട് ഉപയോഗിക്കുകയായിരിന്നെങ്കിൽ ഇത് സംഭവിച്ചേക്കാം. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's ദൃശ്യരൂപ ഡയറക്ടറിയിൽ നിന്ന്], ഇനിക്കൊടുക്കുന്ന മാർഗ്ഗങ്ങൾ ഉപയോഗിച്ച് ഏതാനം ദൃശ്യരൂപങ്ങൾ ഇൻസ്റ്റോൾ ചെയ്യാൻ നോക്കുക:\n:* [https://www.mediawiki.org/wiki/Download ടാർബോൾ ഇൻസ്റ്റോളർ] ഡൗൺലോഡ് ചെയ്യുക, അതിൽ നിരവധി ദൃശ്യരൂപങ്ങളും അനുബന്ധങ്ങളും ഉൾപ്പെടുത്തിയിരിക്കുന്നു. അതിൽ നിന്നും താങ്കൾക്ക് <code>skins/</code> ഡയറക്ടറി പകർത്താവുന്നതാണ്.\n:* താങ്കളുടെ മീഡിയവിക്കി ഇൻസ്റ്റലേഷന്റെ <code>skins/</code> ഡയറക്ടറിയിലേക്ക് ഗിറ്റ് ഉപയോഗിച്ച് <code>mediawiki/skins/*</code> റെപ്പോസിറ്ററികളിലൊന്ന് ക്ലോൺ ചെയ്യുക.\n: താങ്കളൊരു മീഡിയവിക്കി ഡവലപ്പറാണെങ്കിൽ ഇത് താങ്കളുടെ ഗിറ്റ് ഡെപ്പോസിറ്ററിയെ ബാധിക്കുന്നതല്ല. ദൃശ്യരൂപങ്ങൾ എങ്ങനെ ക്രമീകരിക്കാം എന്നും സ്വതേ വേണ്ടത് എങ്ങനെ സജ്ജമാക്കാം എന്നും [https://www.mediawiki.org/wiki/Manual:Skin_configuration ദൃശ്യരൂപം സജ്ജമാക്കൽ സഹായിയിൽ] കാണുക.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (സജ്ജം)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''സജ്ജമല്ല''')"
 }
index 67e82db..195552a 100644 (file)
        "talkpagelinktext": "Яриа",
        "specialpage": "Тусгай хуудас",
        "personaltools": "Өөрийн багаж хэрэгслүүд",
-       "postcomment": "Шинэ хэсэг",
        "articlepage": "Өгүүллийг үзэх",
        "talk": "Хэлэлцүүлэг",
        "views": "Харагдацууд",
        "externaldberror": "Нэг бол гадны баталгаажуулах мэдээллийн сангийн алдаа гарсан, эсвэл та өөрийн гадны бүртгэлээ шинэчлэх эрхгүй байна.",
        "login": "Нэвтрэх",
        "nav-login-createaccount": "Нэвтрэх / Бүртгүүлэх",
-       "loginprompt": "Та {{SITENAME}}-д нэвтрэхийн тулд күүкинүүд ашиглагдана.",
        "userlogin": "Нэвтрэх / Бүртгүүлэх",
        "userloginnocreate": "Нэвтрэх",
        "logout": "Гарах",
        "searchprofile-advanced-tooltip": "Сонгосон нэрний зайнуудаас хайх",
        "search-result-size": "$1 (нийт $2 үг)",
        "search-result-category-size": "{{PLURAL:$1|1 гишүүн|$1 гишүүн}} ({{PLURAL:$2|1 дэд ангилал|$2 дэд ангилал}}, {{PLURAL:$3|1 файл|$3 файл}})",
-       "search-result-score": "Холбоо хамаарал: $1%",
        "search-redirect": "(чиглүүлэгч $1)",
        "search-section": "(Хэсэг $1)",
        "search-suggest": "Та $1 гэж хайя гэсэн үү?",
        "uploadwarning": "Хуулах үеийн анхааруулга",
        "uploadwarning-text": "Доорх файлын тодорхойлолтыг өөрчлөөд дахин оролдоно уу.",
        "savefile": "Файлыг хадгалах",
-       "uploadedimage": "\"[[$1]]\"-г орууллаа",
-       "overwroteimage": "\"[[$1]]\"-н шинэ хувилбарыг орууллаа",
        "uploaddisabled": "Файл оруулах боломжгүй байна.",
        "copyuploaddisabled": "URL-аас оруулж болохгүй.",
        "uploaddisabledtext": "Файл оруулалтуудыг идэвхижүүлээгүй байна.",
        "watchlist-details": "Хяналтын жагсаалтад {{PLURAL:$1|$1 хуудас|$1 хуудаснууд}} байна.",
        "wlheader-enotif": "И-мэйл мэдэгдэл хүчинтэй боллоо.",
        "wlheader-showupdated": "Таны хамгийн сүүлд айлчилснаас хойш өөрчлөгдсөн хуудсууд '''тодоор''' бичигдсэн байгаа",
+       "wlnote": "Энд нь {{PLURAL:$2|цагийн|'''$2''' цагийн}} өмнө хамгийн сүүлд хийсэн {{PLURAL:$1|өөрчлөлт| '''$1''' өөрчлөлтүүд}} байна.",
        "wlshowlast": "Сүүлийн $1 цагийн $2 өдрийн $3-г харуул",
        "watchlist-options": "Хянаж буй хуудсуудын жагсаалтны сонголтууд",
        "watching": "Хянаж байна...",
        "duplicate-defaultsort": "'''Анхаар:''' \"$2\" гэсэн default sort key нь \"$1\" гэсэн өмнөх key-н дээгүүр бичигдэх болж байна.",
        "version": "Хувилбар",
        "version-extensions": "Суулгасан өргөтгөлүүд",
+       "version-skins": "Арьс",
        "version-specialpages": "Тусгай хуудсууд",
        "version-parserhooks": "Парсер хүүкүүд",
        "version-variables": "Хувьсагчууд",
        "version-antispam": "Спамаас сэргийлэх",
-       "version-skins": "Арьс",
        "version-other": "Бусад",
        "version-mediahandlers": "Медиа боловсруулагч",
        "version-hooks": "Гогцоо",
index d7c946f..942ddb7 100644 (file)
        "talkpagelinktext": "चर्चा",
        "specialpage": "विशेष पृष्ठ",
        "personaltools": "वैयक्तिक साधने",
-       "postcomment": "नवीन विभाग",
        "articlepage": "लेख पृष्ठ",
        "talk": "चर्चा",
        "views": "दृष्ये",
        "externaldberror": "विदागार ’खातरजमा’ (प्रमाणितीकरण) त्रुटी होती अथवा तुम्हाला तुमचे बाह्य खाते अद्ययावत  करण्याची परवानगी नाही.",
        "login": "सनोंद-प्रवेश(लॉग-ईन)",
        "nav-login-createaccount": "सनोंद-प्रवेश / सदस्यखाते उघडा",
-       "loginprompt": "{{SITENAME}}मध्ये सनोंद-प्रवेशासाठी  स्मृतिशेष सक्षम (कुकिज एनेबल)असणे आवश्यक आहे.",
        "userlogin": "सनोंद-प्रवेश करा /सदस्यखाते उघडा",
        "userloginnocreate": "सनोंद-प्रवेश",
        "logout": "सनोंद-निर्गम",
        "searchprofile-advanced-tooltip": "निवडलेल्या नामविश्वांमध्ये शोधा:",
        "search-result-size": "$1 ({{PLURAL:$2|१ शब्द|$2 शब्द}})",
        "search-result-category-size": "{{PLURAL:$1|१ सदस्य|$1 सदस्य}} ({{PLURAL:$2|१ उपवर्ग|$2 उपवर्ग}}, {{PLURAL:$3|1 संचिका|$3 संचिका}})",
-       "search-result-score": "अन्वर्थकता: $1%",
        "search-redirect": "(पुनर्निर्देशन $1)",
        "search-section": "(विभाग $1)",
        "search-suggest": "तुम्हाला हेच म्हणायचे का: $1",
        "uploadwarning": "चढवताना सूचना",
        "uploadwarning-text": "कृपया खालील संचिका वर्णन संपादित करून पुनर्प्रयत्न करा.",
        "savefile": "संचिका जतन करा",
-       "uploadedimage": "\"[[$1]]\" चे अपभारण केले",
-       "overwroteimage": "\"[[$1]]\" या संचिकेची नवीन आवृत्ती चढविली.",
        "uploaddisabled": "संचिका चढविण्यास बंदी घालण्यात आलेली आहे.",
        "copyuploaddisabled": "आंतरजालपत्त्याद्वारे चढवणे प्रतिबंधित आहे.",
        "uploaddisabledtext": "{{SITENAME}} वर संचिका चढविण्यास बंदी घालण्यात आलेली आहे.",
        "watchlist-details": "पहाऱ्याच्या सूचीमधील {{PLURAL:$1|$1 पान|$1 पाने}}, यात चर्चा पाने मोजलेली नाहीत.",
        "wlheader-enotif": "विपत्र अधिसूचना सुविधा शक्य केली.",
        "wlheader-showupdated": "ती पाने, जी आपण दिलेल्या शेवटच्या भेटीनंतर बदललेली आहेत, '''ठळक''' दाखवली आहेत.",
+       "wlnote": "खाली $3, $4 पर्यंतचे गेल्या {{PLURAL:$2| '''१''' तासातील|'''$2''' तासातील}} {{PLURAL:$1|शेवटचा बदल दिला आहे|शेवटाचे '''$1'''बदल दिले आहेत}}.",
        "wlshowlast": "मागील $1 तास $2 दिवस $3 पहा",
        "watchlist-options": "पहाऱ्याच्या सूचीचे पर्याय",
        "watching": "पहारा देत आहे...",
        "duplicate-defaultsort": "'''ताकिद:''' डिफॉल्ट सॉर्ट की \"$2\" ओवर्राइड्स अर्लीयर डिफॉल्ट सॉर्ट की \"$1\".",
        "version": "आवृत्ती",
        "version-extensions": "स्थापित विस्तार",
+       "version-skins": "त्वचा",
        "version-specialpages": "विशेष पाने",
        "version-parserhooks": "पृथकक अंकुश",
        "version-variables": "चल",
        "version-antispam": "उत्पात प्रतिबंधन",
-       "version-skins": "त्वचा",
        "version-other": "इतर",
        "version-mediahandlers": "मिडिया हॅंडलर",
        "version-hooks": "अंकुश",
index 727e2ab..d78e552 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Amdf",
-                       "Andrijko Z."
+                       "Andrijko Z.",
+                       "아라"
                ]
        },
        "tog-underline": "Ажедмӓшвлӓм ыдыралаш",
@@ -15,7 +16,6 @@
        "tog-showtoolbar": "Текстӹм тӧрлӹмӹ годым кӱшӹл панельӹм анжыкташ (JavaScript)",
        "tog-editondblclick": "Ӹлӹшташвлӓм кок гӓнӓ темдӓл, тӧрлӓш (JavaScript)",
        "tog-editsectiononrightclick": "Секцим тӧрлӹмӹ годым артикль лӹмӹм каля доно вургымлашты темдӓлӓш (JavaScript)",
-       "tog-rememberpassword": "Мӹньӹн шотыш нӓлмӹ сирмӓшем ти компьютерӹштӹ ӓштӓш (максимум $1 {{PLURAL:$1|1=кечы|кечы}})",
        "tog-watchcreations": "Мӹньӹн ӹштӹмӹ ӹлӹштӓшвлӓэм вӓнгӹмӹ списокыш пырташ",
        "tog-watchdefault": "Мӹньӹн вашталтымы ӹлӹштӓшвлӓэм вӓнгӹмӹ списокыш пырташ",
        "tog-watchmoves": "Мӹньӹн лӹмӹм вашталтымы ӹлӹштӓшвлӓэм вӓнгӹмӹ списокыш пырташ",
        "navigation": "Навигаци",
        "qbfind": "Кӹчӓлӓш",
        "qbedit": "Торлӓш",
-       "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": "Самынь",
        "returnto": "Мӹнгеш ӹлӹштӓшӹш $1.",
        "tagline": "гӹц материал {{grammar:genitive|{{SITENAME}}}}",
        "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-to": "Анешлӓ, тӹ ӹлыштӓшвлӓштӹш вашталтымашвлӓм анжыкташ, кыдывлӓ ти ӹлӹштӓшӹшкӹ ажедӹт",
        "upload": "Файлым темӓш",
        "uploadlogpage": "Оптымашвлӓн журналышты",
-       "uploadedimage": "оптымы «[[$1]]»",
        "filehist": "Файлын историжӹ",
        "filehist-help": "Файл тӹнӓм махань ылын, тидӹм ужаш манын датым темдӓлдӓ.",
        "filehist-current": "кӹзӹтшӹ",
        "booksources-go": "Моаш",
        "log": "Журналвлӓ",
        "allpages": "Цилӓ ӹлӹштӓш",
-       "alphaindexline": "$1 гӹц $2 якте",
        "prevpage": "Анзыл ӹлӹштӓш ($1)",
        "allpagesfrom": "Анжыкташ тӹ ӹлӹштӓшвлӓм , кыдывлӓ тӹнгӓлӓлтӹт:",
        "allpagesto": "Лыкмашым тишӓк шагалташ:",
index b47a10b..5d4677f 100644 (file)
                ]
        },
        "tog-underline": "Garis bawah pautan:",
-       "tog-hideminor": "Sembunyikan suntingan kecil dalam laman perubahan terkini",
-       "tog-hidepatrolled": "Sorokkan suntingan yang telah dironda daripada laman perubahan terkini",
+       "tog-hideminor": "Sembunyikan suntingan kecil dalam perubahan terkini",
+       "tog-hidepatrolled": "Sorokkan suntingan yang telah dironda daripada perubahan terkini",
        "tog-newpageshidepatrolled": "Sorokkan laman yang telah dironda daripada senarai laman baru",
        "tog-extendwatchlist": "Kembangkan senarai pantau untuk memaparkan semua perubahan, bukan hanya yang terkini",
-       "tog-usenewrc": "Perubahan kumpulan mengikut laman dalam perubahan terkini dan senarai pantau",
+       "tog-usenewrc": "Kumpulkan perubahan mengikut laman dalam perubahan terkini dan senarai pantau",
        "tog-numberheadings": "Nomborkan tajuk secara automatik",
-       "tog-showtoolbar": "Tunjukkan palang sunting (perlukan JavaScript)",
-       "tog-editondblclick": "Dwiklik untuk sunting laman (JavaScript)",
+       "tog-showtoolbar": "Tunjukkan palang alat sunting",
+       "tog-editondblclick": "Dwiklik untuk menyunting laman",
        "tog-editsectiononrightclick": "Bolehkan penyuntingan bahagian dengan mengklik kanan pada tajuk bahagian",
-       "tog-watchcreations": "Tambahkan laman yang saya buat dan fail yang saya muat naik ke dalam senarai pantau",
-       "tog-watchdefault": "Tambahkan laman dan fail yang saya sunting ke dalam senarai pantau",
-       "tog-watchmoves": "Tambahkan laman dan fail yang saya pindahkan ke dalam senarai pantau",
-       "tog-watchdeletion": "Tambahkan laman dan fail yang saya hapuskan ke dalam senarai pantau",
-       "tog-minordefault": "Tandakan semua suntingan sebagai kecil secara asali",
+       "tog-watchcreations": "Tambahkan laman-laman yang saya mencipta dan fail-fail yang saya memuat naik ke dalam senarai pantau saya",
+       "tog-watchdefault": "Tambahkan laman-laman dan fail-fail yang saya menyunting ke dalam senarai pantau saya",
+       "tog-watchmoves": "Tambahkan laman-laman dan fail-fail yang saya memindah ke dalam senarai pantau saya",
+       "tog-watchdeletion": "Tambahkan laman-laman dan fail-fail yang saya menghapus ke dalam senarai pantau saya",
+       "tog-watchrollback": "Tambahkan laman-laman di mana saya telah membuat unduran ke senarai pantau saya",
+       "tog-minordefault": "Tandakan semua suntingan sebagai kecil secara asli",
        "tog-previewontop": "Tunjukkan pralihat di atas kotak sunting",
        "tog-previewonfirst": "Tunjukkan pralihat pada suntingan pertama",
-       "tog-enotifwatchlistpages": "E-mel kepada saya tentang perubahan pada halaman-halaman dan fail-fail dalam senarai pantau saya",
-       "tog-enotifusertalkpages": "E-melkan saya apabila berlaku perubahan pada laman perbincangan saya",
-       "tog-enotifminoredits": "Juga e-mel kepada saya tentang suntingan kecil pada halaman-halaman dan fail-fail",
+       "tog-enotifwatchlistpages": "E-melkan saya apabila sebuah laman atau fail dalam senarai pantau saya telah diubahkan",
+       "tog-enotifusertalkpages": "E-melkan saya apabila laman perbincangan saya telah diubahkan",
+       "tog-enotifminoredits": "Juga e-melkan saya untuk suntingan-suntingan laman dan fail yang kecil",
        "tog-enotifrevealaddr": "Serlahkan alamat e-mel saya dalam e-mel pemberitahuan",
        "tog-shownumberswatching": "Tunjukkan bilangan pemantau",
-       "tog-oldsig": "Tanda tangan yang sedia ada:",
+       "tog-oldsig": "Tandatangan yang sedia ada:",
        "tog-fancysig": "Anggap tandatangan sebagai teks wiki (tanpa pautan automatik)",
        "tog-uselivepreview": "Gunakan pralihat langsung (dalam percubaan)",
        "tog-forceeditsummary": "Tanya saya jika ringkasan suntingan kosong",
        "tog-watchlisthideown": "Sembunyikan suntingan saya daripada senarai pantau",
        "tog-watchlisthidebots": "Sembunyikan suntingan bot daripada senarai pantau",
        "tog-watchlisthideminor": "Sembunyikan suntingan kecil daripada senarai pantau",
-       "tog-watchlisthideliu": "Sembunyikan suntingan oleh pengguna log masuk daripada senarai pantau",
+       "tog-watchlisthideliu": "Sembunyikan suntingan oleh pengguna yang dilog masuk daripada senarai pantau",
        "tog-watchlisthideanons": "Sembunyikan suntingan oleh pengguna tanpa nama daripada senarai pantau",
-       "tog-watchlisthidepatrolled": "Sorokkan suntingan yang telah dironda daripada senarai pantau",
+       "tog-watchlisthidepatrolled": "Sembunyikan suntingan yang telah dironda daripada senarai pantau",
        "tog-ccmeonemails": "Kirimkan saya salinan e-mel yang saya hantar kepada pengguna lain",
        "tog-diffonly": "Jangan tunjukkan kandungan laman di bawah perbezaan",
        "tog-showhiddencats": "Tunjukkan kategori tersembunyi",
        "pool-timeout": "Menunggu sebentar untuk dikunci",
        "pool-queuefull": "Giliran kolam telah penuh",
        "pool-errorunknown": "Ralat tak diketahui",
+       "pool-servererror": "Perkhidmatan kaunter tabung tidak disediakan ($1).",
        "aboutsite": "Perihal {{SITENAME}}",
        "aboutpage": "Project:Perihal",
        "copyright": "Kandungan disediakan di bawah $1 melainkan dinyatakan sebaliknya.",
        "laggedslavemode": "Amaran: Laman ini mungkin bukan yang terkini.",
        "readonly": "Pangkalan data dikunci",
        "enterlockreason": "Sila nyatakan sebab penguncian dan jangkaan\nbila kunci ini akan dibuka.",
-       "readonlytext": "Pangkalan data sedang dikunci. Hal ini mungkin disebabkan oleh penyenggaraan rutin, dan akan dibuka semula selepas proses penyenggaraan ini siap.\n\nPentadbir yang menguncinya memberi penjelasan ini: $1",
-       "missing-article": "Teks bagi laman \"$1\" $2 tidak dijumpai dalam pangkalan data.\n\nPerkara ini biasanya disebabkan oleh perbuatan mengikuti pautan perbezaan yang lama atau pautan ke laman yang telah dihapuskan.\n\nJika bukan ini sebabnya, anda mungkin telah menjumpai pepijat dalam perisian ini.\nSila catat URL bagi laman ini dan laporkan perkara ini kepada seorang [[Special:ListUsers/sysop|pentadbir]].",
+       "readonlytext": "Pangkalan data telah dikunci daripada penyertaan baru dan perubahan-perubahan lain, mungkin untuk penyenggaraan pangkalan data yang rutin, dan akan dibuka semula selepas ia disiapkan.\n\nPenyelia yang menguncinya telah memberi penjelasan ini: $1",
+       "missing-article": "Teks bagi laman \"$1\" $2 tidak dijumpai dalam pangkalan data.\n\nPerkara ini biasanya disebabkan oleh perbuatan mengikuti pautan perbezaan yang lama atau pautan ke sejarah laman yang telah dihapuskan.\n\nJika ini bukan sebabnya, anda mungkin telah menjumpai pepijat dalam perisian ini.\nSila catat URL bagi laman ini dan laporkan perkara ini kepada seorang [[Special:ListUsers/sysop|penyelia]].",
        "missingarticle-rev": "(semakan $1)",
        "missingarticle-diff": "(Beza: $1, $2)",
        "readonly_lag": "Pangkalan data telah dikunci secara automatik sementara semua pelayan pangkalan data diselaraskan.",
        "mypreferencesprotected": "Anda tidak mempunyai kebenaran untuk menyunting tetapan keutamaan anda.",
        "ns-specialprotected": "Laman khas tidak boleh disunting.",
        "titleprotected": "Tajuk ini telah dilindungi oleh [[User:$1|$1]] daripada dicipta. Sebab yang diberikan ialah ''$2''.",
-       "filereadonlyerror": "Fail \"$1\" tidak dapat diubah suai kerana repositori fail \"$2\" berada dalam ragam baca sahaja.\n\nPentadbir yang menguncinya memberikan penjelasan yang berikut: \"$3\".",
+       "filereadonlyerror": "Fail \"$1\" tidak dapat diubah suai kerana repositori fail \"$2\" berada dalam mod baca sahaja.\n\nPenyelia yang telah menguncinya memberikan penjelasan berikut: \"$3\".",
        "invalidtitle-knownnamespace": "Tajuk tidak sah dengan ruang nama \"$2\" dan teks \"$3\"",
        "invalidtitle-unknownnamespace": "Tajuk tidak sah dengan nombor ruang nama tidak dikenali $1 dan teks \"$2\"",
        "exception-nologin": "Belum log masuk",
        "summary-preview": "Pralihat ringkasan:",
        "subject-preview": "Pralihat tajuk:",
        "blockedtitle": "Pengguna disekat",
-       "blockedtext": "'''Nama pengguna atau alamat IP anda telah disekat.'''\n\nSekatan ini dilakukan oleh $1 dengan sebab ''$2''.\n\n* Mula: $8\n* Tamat: $6\n* Pengguna sasaran: $7\n\nSila hubungi $1 atau [[{{MediaWiki:Grouppage-sysop}}|pentadbir]] yang lain untuk untuk berunding mengenai sekatan ini.\n\nAnda tidak boleh menggunakan ciri \"e-melkan pengguna ini\" kecuali sekiranya anda telah menetapkan alamat e-mel yang sah dalam [[Special:Preferences|keutamaan]] anda dan anda tidak disekat daripada menggunakannya.\n\nAlamat IP semasa anda ialah $3, dan ID sekatan ialah #$5. Sila sertakan maklumat-maklumat ini dalam pertanyaan nanti.",
-       "autoblockedtext": "Alamat IP anda telah disekat secara automatik kerana ia digunakan oleh pengguna lain yang disekat oleh $1.\nYang berikut ialah sebab yang dinyatakan:\n\n:''$2''\n\n* Mula: $8\n* Tamat: $6\n* Pengguna sasaran: $7\n\nAnda boleh menghubungi $1 atau [[{{MediaWiki:Grouppage-sysop}}|pentadbir]] lain untuk berunding mengenai sekatan ini.\n\nSila ambil perhatian bahawa anda tidak boleh menggunakan ciri \"e-melkan pengguna ini\" kecuali sekiranya anda telah menetapkan alamat e-mel yang sah dalam [[Special:Preferences|laman keutamaan]] anda dan anda tidak disekat daripada menggunakannya.\n\nAlamat IP semasa anda ialah $3, dan ID sekatan ialah #$5. Sila sertakan maklumat-maklumat ini dalam pertanyaan nanti.",
+       "blockedtext": "<strong>Nama pengguna atau alamat IP anda telah disekat.</strong>\n\nSekatan ini dilakukan oleh $1.\nSebab yang telah diberikan ialah <em>$2</em>.\n\n* Sekatan mula: $8\n* Sekatan tamat: $6\n* Pengguna sasaran: $7\n\nAnda boleh hubungi $1 atau [[{{MediaWiki:Grouppage-sysop}}|penyelia]] yang lain untuk membincangkan sekatan ini.\n\nSila ambil perhatian bahawa anda tidak boleh menggunakan ciri \"kirim e-mel kepada pengguna ini\" kecuali sekiranya anda telah menetapkan alamat e-mel yang sah dalam [[Special:Preferences|keutamaan pengguna]] anda dan anda tidak disekat daripada menggunakannya.\n\nAlamat IP semasa anda ialah $3, dan ID sekatan ialah #$5.\nSila sertakan maklumat-maklumat di atas dalam sebarang pertanyaan yang anda membuat.",
+       "autoblockedtext": "Alamat IP anda telah disekat secara automatik kerana ia digunakan oleh pengguna lain yang disekat oleh $1.\nSebab yang dinyatakan ialah:\n\n:<em>$2</em>\n\n* Sekatan mula: $8\n* Sekatan tamat: $6\n* Pengguna sasaran: $7\n\nAnda boleh menghubungi $1 atau seorang [[{{MediaWiki:Grouppage-sysop}}|penyelia]] yang lain untuk membincangkan sekatan ini.\n\nSila ambil perhatian bahawa anda tidak boleh menggunakan ciri \"kirim e-mel kepada pengguna ini\" kecuali sekiranya anda telah menetapkan alamat e-mel yang sah dalam [[Special:Preferences|keutamaan pengguna]] anda dan anda tidak disekat daripada menggunakannya.\n\nAlamat IP semasa anda ialah $3, dan ID sekatan ialah #$5.\nSila sertakan maklumat-maklumat di atas dalam sebarang pertanyaan yang anda membuat.",
        "blockednoreason": "tiada sebab diberikan",
        "whitelistedittext": "Anda hendaklah $1 terlebih dahulu untuk menyunting laman.",
        "confirmedittext": "Anda perlu mengesahkan alamat e-mel anda terlebih dahulu untuk menyunting mana-mana laman. Sila tetapkan dan sahkan alamat e-mel anda melalui [[Special:Preferences|laman keutamaan]].",
        "token_suffix_mismatch": "'''Suntingan anda telah ditolak kerana pelanggan anda memusnahkan aksara tanda baca\ndalam token suntingan. Suntingan tersebut telah ditolak untuk menghalang kerosakan teks laman.\nHal ini kadangkala berlaku apabila anda menggunakan khidmat proksi tanpa nama berdasarkan web yang bermasalah.'''",
        "edit_form_incomplete": "'''Beberapa bahagian dari bentuk edit tidak mencapai pelayan, periksa bahawa suntingan anda utuh dan cuba lagi'.'''",
        "editing": "Menyunting $1",
-       "creating": "Membuat $1",
+       "creating": "Mencipta $1",
        "editingsection": "Menyunting $1 (bahagian)",
        "editingcomment": "Menyunting $1 (bahagian baru)",
        "editconflict": "Percanggahan penyuntingan: $1",
        "parser-template-recursion-depth-warning": "Had pengulangan templat dilebihi ($1)",
        "language-converter-depth-warning": "Had kedalaman penukar bahasa dilepasi ($1)",
        "node-count-exceeded-category": "Laman yang melebihi had kiraan nod",
+       "node-count-exceeded-category-desc": "Laman telah melebihi kiraan kod maksimum.",
        "node-count-exceeded-warning": "Laman telah melebihi bilangan nod",
        "expansion-depth-exceeded-category": "Laman yang melebihi had kedalaman peluasan",
+       "expansion-depth-exceeded-category-desc": "Laman telah melebihi kedalaman peluasan maksimum.",
        "expansion-depth-exceeded-warning": "Laman terlebih dalam peluasan",
        "parser-unstrip-loop-warning": "Gelung unstrip dikesan",
        "parser-unstrip-recursion-limit": "Had rekursi unstrip dilampaui ($1)",
        "rev-suppressed-no-diff": "Anda tidak boleh melihat perbezaan ini kerana salah satu semakannya telah '''dihapuskan'''.",
        "rev-deleted-unhide-diff": "Salah satu semakan perbezaan ini telah '''dihapuskan'''.\nButiran lanjut boleh didapati dalam [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].\nAnda masih boleh [$1 melihat semakan ini] jika anda ingin teruskan.",
        "rev-suppressed-unhide-diff": "Salah satu semakan perbezaan ini telah '''diselindungkan'''.\nButiran lanjut boleh didapati dalam [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} log penyelindungan].\nAnda masih boleh [$1 melihat perbezaan ini] jika anda ingin teruskan.",
-       "rev-deleted-diff-view": "Salah satu semakan perbezaan ini telah '''dihapuskan'''.\nSebagai pentadbir anda boleh melihat perbezaan ini; butiran boleh didapati di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].",
+       "rev-deleted-diff-view": "Salah satu semakan perbezaan ini telah <strong>dihapuskan</strong>.\nAnda boleh melihat perbezaan ini; butiran boleh didapati di dalam [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].",
        "rev-suppressed-diff-view": "Salah satu semakan perbezaan ini telah '''dipendam'''.\nAnda boleh melihat perbezaan ini; butiran boleh didapati di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penyelindungan].",
        "rev-delundel": "tunjukkan/sorokkan",
        "rev-showdeleted": "tunjukkan",
        "revdelete-modify-missing": "Ralat menyunting item ID $1: ia tiada dalam pangkalan data!",
        "revdelete-no-change": "'''Amaran:''' item bertarikh $2, $1 telah mempunyai aturan penglihatan yang diminta.",
        "revdelete-concurrent-change": "Ralat ketika mengubahsuai item bertarikh $2, $1: kelihatan statusnya telah diubah oleh orang lain ketika anda cuba untuk mengubahsuainya.\nMohon semak log.",
-       "revdelete-only-restricted": "Ralat menyembunyikan item bertarikh $2, $1: anda tidak boleh menyekat item-item dari pandangan pentadbir-pentadbir tanpa memilih juga salah satu pilihan pandangan lain.",
+       "revdelete-only-restricted": "Ralat menyembunyikan item bertarikh $2, $1: Anda tidak boleh menyekat item-item dari pandangan penyelia-penyelia tanpa memilih juga salah satu pilihan pandangan yang lain.",
        "revdelete-reason-dropdown": "*Sebab penghapusan yang biasa\n** Pencabulan hak cipta\n** Ulasan atau maklumat peribadi tidak sesuai\n** Nama pengguna tidak sesuai\n** Maklumat berkemungkinan fitnah",
        "revdelete-otherreason": "Sebab lain/tambahan:",
        "revdelete-reasonotherlist": "Sebab lain",
        "revdelete-edit-reasonlist": "Ubah sebab-sebab hapus",
        "revdelete-offender": "Pengarang semakan:",
        "suppressionlog": "Log penahanan",
-       "suppressionlogtext": "Berikut adalah daftar penghapusan dan sekatan yang melibatkan kandungan yang disembunyikan daripada pentadbir.\nLihat [[Special:BlockList|senarai sekatan]] untuk senarai larangan dan sekatan semasa.",
+       "suppressionlogtext": "Berikut adalah senarai penghapusan dan sekatan yang melibatkan kandungan yang telah disembunyikan daripada penyelia.\nLihat [[Special:BlockList|senarai sekatan]] untuk senarai larangan dan sekatan semasa.",
        "mergehistory": "Gabungkan sejarah laman",
        "mergehistory-header": "Anda boleh menggabungkan semua semakan dalam sejarah bagi sesebuah laman sumber ke dalam laman lain.\nSila pastikan bahawa perubahan ini akan mengekalkan kesinambungan sejarah laman.\n\n'''Setidak-tidaknya semakan semasa bagi laman sumber akan ditinggalkan.'''",
        "mergehistory-box": "Gabungkan semakan bagi dua laman:",
        "prefs-advancedwatchlist": "Pilihan lanjutan",
        "prefs-displayrc": "Pilihan paparan",
        "prefs-displaywatchlist": "Pilihan paparan",
+       "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Beza",
        "prefs-help-prefershttps": "Keutamaan inu akan berkuatkuasa pada lain kali anda log masuk.",
        "prefs-tabs-navigation-hint": "Petua: Anda boleh menggunakan kekunci anak panah kiri atau kanan untuk beralihan dari tab ke tab pada senarai tab.",
        "userrights-reason": "Sebab:",
        "userrights-no-interwiki": "Anda tidak mempunyai keizinan untuk mengubah hak-hak pengguna di wiki lain.",
        "userrights-nodatabase": "Pangkalan data $1 tiada atau bukan tempatan.",
-       "userrights-nologin": "Anda mesti [[Special:UserLogin|log masuk]] dengan akaun pentadbir terlebih dahulu untuk memperuntukkan hak-hak pengguna.",
+       "userrights-nologin": "Anda mesti [[Special:UserLogin|log masuk]] dengan akaun penyelia terlebih dahulu untuk memperuntukkan hak-hak pengguna.",
        "userrights-notallowed": "Akuan anda tidak dibenarkan untuk menambah atau membuang hak pengguna.",
        "userrights-changeable-col": "Kumpulan yang anda boleh ubah",
        "userrights-unchangeable-col": "Kumpulan yang anda tak boleh ubah",
        "group-user": "Pengguna",
        "group-autoconfirmed": "Pengguna sah automatik",
        "group-bot": "Bot",
-       "group-sysop": "Pentadbir",
+       "group-sysop": "Penyelia",
        "group-bureaucrat": "Birokrat",
        "group-suppress": "Penyemak",
        "group-all": "(semua)",
        "group-user-member": "{{GENDER:$1|pengguna}}",
        "group-autoconfirmed-member": "{{GENDER:$1|pengguna sah automatik}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
-       "group-sysop-member": "{{GENDER:$1|pentadbir}}",
+       "group-sysop-member": "{{GENDER:$1|penyelia}}",
        "group-bureaucrat-member": "{{GENDER:$1|birokrat}}",
        "group-suppress-member": "{{GENDER:$1|penyemak}}",
        "grouppage-user": "{{ns:project}}:Pengguna",
        "grouppage-autoconfirmed": "{{ns:project}}:Pengguna yang disahkan secara automatik",
        "grouppage-bot": "{{ns:project}}:Bot",
-       "grouppage-sysop": "{{ns:project}}:Pentadbir",
+       "grouppage-sysop": "{{ns:project}}:Penyelia",
        "grouppage-bureaucrat": "{{ns:project}}:Birokrat",
        "grouppage-suppress": "{{ns:project}}:Penyemak",
        "right-read": "Membaca laman",
        "upload-proto-error": "Protokol salah",
        "upload-proto-error-text": "Muat naik jauh memerlukan URL yang dimulakan dengan <code>http://</code> atau <code>ftp://</code>.",
        "upload-file-error": "Ralat dalaman",
-       "upload-file-error-text": "Ralat dalaman telah berlaku ketika cuba mencipta fail sementara pada komputer pelayan.\nSila hubungi [[Special:ListUsers/sysop|pentadbir sistem]].",
+       "upload-file-error-text": "Ralat dalaman telah berlaku ketika mencubai menciptakan fail sementara pada komputer pelayan.\nSila hubungi seorang [[Special:ListUsers/sysop|penyelia]].",
        "upload-misc-error": "Ralat muat naik yang tidak diketahui",
-       "upload-misc-error-text": "Ralat yang tidak diketahui telah berlaku ketika muat naik. Sila pastikan bahawa URL tersebut sah dan boleh dicapai kemudian cuba lagi. Jika masalah ini berterusan, sila hubungi pentadbir sistem.",
+       "upload-misc-error-text": "Ralat yang tidak diketahui telah berlaku ketika muat naik.\nSila pastikan bahawa URL tersebut sah dan boleh dicapai, kemudian cuba lagi.\nJika masalah ini berterusan, sila hubungi seorang [[Special:ListUsers/sysop|penyelia]].",
        "upload-too-many-redirects": "URL ini mengandungi terlalu banyak lencongan",
        "upload-http-error": "Berlaku ralat HTTP: $1",
        "upload-copy-upload-invalid-domain": "Muat naik salin tidak terdapat dari domain ini.",
        "wantedpages": "Laman dikehendaki",
        "wantedpages-badtitle": "Tajuk tidak sah dalam set keputusan: $1",
        "wantedfiles": "Fail dikehendaki",
-       "wantedfiletext-cat": "Fail-fail yang berikut digunakan tetapi tidak wujud. Fail-fail dari repositori asing mungkin tersenarai walaupun wujud. Sebarang positif palsu sedemikian akan <del>dipotong</del>. Begitu juga, laman-laman yang terbenam fail-fail yang tidak wujud adalah tersenarai dalam [[:$1]].",
-       "wantedfiletext-nocat": "Fail-fail yang berikut digunakan tetapi tidak wujud. Fail-fail dari repositori asing mungkin tersenarai walaupun wujud. Sebarang positif palsu sedemikian akan <del>dipotong</del>.",
+       "wantedfiletext-cat": "Fail-fail berikut sedang digunakan tetapi tidak wujud. Fail-fail dari repositori asing mungkin tersenarai walaupun wujud. Sebarang positif palsu sedemikian akan <del>dipotong</del>. Tambahannya, laman-laman yang membenamkan fail-fail yang tidak wujud disenaraikan dalam [[:$1]].",
+       "wantedfiletext-cat-noforeign": "Fail-fail berikut sedang digunakan tetapi tidak wujud. Juga, laman-laman yang membenamkan fail-fail yang tidak wujud disenaraikan dalam [[:$1]].",
+       "wantedfiletext-nocat": "Fail-fail berikut sedang digunakan tetapi tidak wujud. Fail-fail dari repositori asing mungkin tersenarai walaupun wujud. Sebarang positif palsu sedemikian akan <del>dipotong</del>.",
+       "wantedfiletext-nocat-noforeign": "Fail-fail berikut sedang digunakan tetapi tidak wujud.",
        "wantedtemplates": "Templat dikehendaki",
        "mostlinked": "Laman dipaut terbanyak",
        "mostlinkedcategories": "Kategori dipaut terbanyak",
        "protectedpages-unknown-timestamp": "Tidak diketahui",
        "protectedpages-unknown-performer": "Pengguna tidak dikenali",
        "protectedtitles": "Tajuk dilindungi",
+       "protectedtitles-summary": "Laman ini menyenaraikan tajuk-tajuk yang telah dilindungi daripada penciptaan. Untuk senarai semua laman sedia ada yang telah dilindungi, lihat [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Tiada tajuk yang dilindungi yang sepadan dengan kriteria yang diberikan.",
        "listusers": "Senarai pengguna",
        "listusers-editsonly": "Hanya papar pengguna yang telah membuat suntingan",
        "activeusers-count": "$1 tindakan sejak {{PLURAL:$3|semalam|$3 hari lalu}}",
        "activeusers-from": "Tunjukkan pengguna bermula pada:",
        "activeusers-hidebots": "Sorokkan bot",
-       "activeusers-hidesysops": "Sorokkan pentadbir",
+       "activeusers-hidesysops": "Sorokkan penyelia",
        "activeusers-noresult": "Tiada pengguna dijumpai.",
        "listgrouprights": "Hak kumpulan pengguna",
-       "listgrouprights-summary": "Yang berikut ialah senarai kumpulan pengguna yang ditubuhkan di wiki ini dengan hak-hak masing-masing.\nAnda boleh mengetahui [[{{MediaWiki:Listgrouprights-helppage}}|maklumat tambahan]] mengenai setiap hak.",
+       "listgrouprights-summary": "Berikut adalah senarai kumpulan pengguna yang ditubuhkan di wiki ini, dengan hak-hak mereka masing-masing.\nMungkin terdapat [[{{MediaWiki:Listgrouprights-helppage}}|maklumat tambahan]] mengenai setiap hak.",
        "listgrouprights-key": "Petunjuk:\n* <span class=\"listgrouprights-granted\">Hak ditunaikan</span>\n* <span class=\"listgrouprights-revoked\">Hak dibatalkan</span>",
        "listgrouprights-group": "Kumpulan",
        "listgrouprights-rights": "Hak",
        "listgrouprights-removegroup-self": "Keluar daripada {{PLURAL:$2|kumpulan|kumpulan-kumpulan}}: $1",
        "listgrouprights-addgroup-self-all": "Menyertai semua kumpulan",
        "listgrouprights-removegroup-self-all": "Keluar daripada semua kumpulan",
-       "listgrouprights-namespaceprotection-header": "Sekatan ruang nama",
+       "listgrouprights-namespaceprotection-header": "Batasan ruang nama",
        "listgrouprights-namespaceprotection-namespace": "Ruang nama",
-       "trackingcategories": "Kategori penjejak",
+       "listgrouprights-namespaceprotection-restrictedto": "Hak(-hak) yang membenarkan pengguna untuk menyunting",
+       "trackingcategories": "Kategori-kategori penjejak",
+       "trackingcategories-summary": "Laman ini menyenaraikan kategori-kategori penjejak yang diisikan oleh perisian MediaWiki secara automatik. Nama-nama mereka boleh ditukarkan dengan mengubah pesanan-pesanan sistem berkenaan dalam ruang nama {{ns:8}}.",
        "trackingcategories-msg": "Kategori penjejak",
        "trackingcategories-name": "Nama pesanan",
+       "trackingcategories-desc": "Kriteria kemasukan kategori",
+       "noindex-category-desc": "Laman tidak didaftar oleh robot kerana ia mempunyai kata ajaib <code><nowiki>__NOINDEX__</nowiki></code> padanya dan terdapat dalam ruang nama di mana tanda tersebut adalah dibenarkan.",
+       "index-category-desc": "Laman mempunyai <code><nowiki>__INDEX__</nowiki></code> padanya (dan terdapat dalam ruang nama di mana tanda tersebut dibenarkan), dan oleh itu adalah didaftar oleh robot di mana ia biasanya tidak akan.",
+       "post-expand-template-inclusion-category-desc": "Saiz laman melebihi <code>$wgMaxArticleSize</code> setelah semua templat telah dikembangkan; oleh itu beberapa templat tidak dikembangkan.",
+       "post-expand-template-argument-category-desc": "Laman menjadi lebih besar daripada <code>$wgMaxArticleSize</code> setelah mengembangkan sebuah hujah templat (sebarang dalam tiga kurungan, seperti <code>{{{Foo}}}</code>.)",
+       "expensive-parserfunction-category-desc": "Laman menggunakan terlalu banyak fungsi parser yang mahal (seperti <code>#ifexist</code>). Lihat [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "Laman mempunyai pautan fail yang putus (pautan untuk membenam sebuah fail apabila fail tersebut tidak wujud).",
+       "hidden-category-category-desc": "Kategori mengandungi <code><nowiki>__HIDDENCAT__</nowiki></code> dalam kandungan laman, menghalangkannya daripada paparan dalam kotak pautan kategori pada laman-laman secara asli.",
        "trackingcategories-nodesc": "Tiada keterangan tersedia.",
        "trackingcategories-disabled": "Kategori telah dimatikan",
        "mailnologin": "Tiada alamat e-mel",
        "delete-edit-reasonlist": "Ubah sebab-sebab hapus",
        "delete-toobig": "Laman ini mempunyai sejarah yang besar, iaitu melebihi $1 jumlah semakan. Oleh itu, laman ini dilindungi daripada dihapuskan untuk mengelak kerosakan di {{SITENAME}} yang tidak disengajakan.",
        "delete-warning-toobig": "Laman ini mempunyai sejarah yang besar, iaitu melebihi $1 jumlah semakan. Menghapuskannya boleh mengganggu perjalanan pangkalan data {{SITENAME}}. Sila berhati-hati.",
+       "delete-cantedit": "Anda tidak boleh menghapuskan laman ini kerana anda tiada kebenaran untuk menyuntingkannya.",
        "deleting-backlinks-warning": "'''Amaran:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Terdapat laman lain]] yang berpaut atau bertransklusi dengan laman yang hendak anda hapus ini.",
        "rollback": "Undurkan suntingan.",
        "rollback_short": "Undur",
        "protect-default": "Benarkan semua pengguna",
        "protect-fallback": "Benarkan pengguna yang berizin \"$1\" sahaja",
        "protect-level-autoconfirmed": "Benarkan pengguna yang diautosahkan sahaja",
-       "protect-level-sysop": "Benarkan pentadbir sahaja",
+       "protect-level-sysop": "Benarkan penyelia sahaja",
        "protect-summary-cascade": "melata",
        "protect-expiring": "sehingga $1 (UTC)",
        "protect-expiring-local": "luput $1",
        "undeleterevisions": "$1 semakan telah diarkibkan.",
        "undeletehistory": "Jika anda memulihkan laman tersebut, semua semakan akan dipulihkan kepada sejarahnya. Jika sebuah laman baru yang mempunyai nama yang sama telah dicipta sejak penghapusan, semakan yang dipulihkan akan muncul dalam sejarah terdahulu.",
        "undeleterevdel": "Penyahhapusan tidak akan dilaksanakan sekiranya ia menyebabkan sebahagian semakan puncak dihapuskan.\nDalam hal tersebut, anda perlu membuang semak atau menyemak semakan yang baru dihapuskan. Semakan fail\nyang anda tidak dibenarkan melihatnya tidak akan dipulihkan.",
-       "undeletehistorynoadmin": "Rencana ini telah dihapuskan. Sebab penghapusan\nditunjukkan dalam ringkasan di bawah, berserta butiran bagi pengguna-pengguna yang telah menyunting laman ini\nsebelum penghapusan. Teks sebenar bagi semua semakan yang dihapuskan hanya boleh dilihat oleh para pentadbir.",
+       "undeletehistorynoadmin": "Laman ini telah dihapuskan.\nSebab penghapusan ditunjukkan dalam ringkasan di bawah, berserta butiran pengguna-pengguna yang telah menyunting laman ini sebelum penghapusan.\nTeks sebenar bagi semakan yang dihapuskan berikut hanya boleh dilihat oleh para penyelia.",
        "undelete-revision": "Menghapuskan semakan bagi $1 (pada $4, $5) oleh $3:",
        "undeleterevision-missing": "Semakan tersebut tidak sah atau tidak dijumpai. Mungkin anda telah mengikuti pautan yang rosak\natau semakan tersebut telah dipulihkan atau dibuang daripada arkib.",
        "undelete-nodiff": "Tiada semakan sebelumnya.",
        "sp-contributions-newbies-sub": "Bagi akaun-akaun baru",
        "sp-contributions-newbies-title": "Sumbangan oleh pengguna baru",
        "sp-contributions-blocklog": "log sekatan",
+       "sp-contributions-suppresslog": "sumbangan pengguna tersembunyi",
        "sp-contributions-deleted": "sumbangan dihapuskan",
        "sp-contributions-uploads": "muat naik",
        "sp-contributions-logs": "log",
        "blocklist-timestamp": "Cop masa",
        "blocklist-target": "Sasaran",
        "blocklist-expiry": "Luput",
-       "blocklist-by": "Pentadbir sekatan",
+       "blocklist-by": "Penyelia sekatan",
        "blocklist-params": "Parameter sekatan",
        "blocklist-reason": "Sebab",
        "ipblocklist-submit": "Cari",
        "movepagetalktext": "Laman perbincangan yang berkaitan, jika ada, akan dipindahkan bersama-sama laman ini secara automatik '''kecuali''':\n* Sebuah laman perbincangan dengan nama baru telah pun wujud, atau\n* Anda membuang tanda kotak di bawah.\n\nDalam kes tersebut, anda terpaksa melencongkan atau menggabungkan laman secara manual, jika perlu.",
        "movearticle": "Pindahkan laman:",
        "moveuserpage-warning": "'''Amaran:''' Anda sudah hendak memindahkan suatu laman pengguna. Sila ambil perhatian bahawa hanya laman tersebut akan dipindahkan dan nama pengguna yang berkenaan ''tidak'' berubah.",
+       "movecategorypage-warning": "<strong>Amaran:</strong> Anda hendak memindahkan sebuah laman kategori. Sila ambil perhatian bahawa hanya laman akan dipindahkan dan sebarang laman dalam kategori laman <em>tidak</em> akan dikategorikan semula ke dalam yang baru.",
        "movenologintext": "Anda mesti [[Special:UserLogin|log masuk]] terlebih dahulu untuk memindahkan laman.",
        "movenotallowed": "Anda tidak mempunyai keizinan untuk memindahkan laman.",
        "movenotallowedfile": "Anda tidak mempunyai keizinan untuk memindahkan fail.",
        "thumbnail_image-type": "Jenis imej tidak disokong",
        "thumbnail_gd-library": "Tatarajah perpustakaan GD tidak lengkap: kehilangan fungsi $1",
        "thumbnail_image-missing": "Fail ini nampaknya hilang: $1",
+       "thumbnail_image-failure-limit": "Terdapat terlalu banyak percubaan yang gagal ($1 atau lebih) untuk memaparkan thumbnail ini. Sila cuba lagi kemudian.",
        "import": "Import laman",
        "importinterwiki": "Import transwiki",
        "import-interwiki-text": "Sila pilih wiki dan tajuk laman yang ingin diimport.\nSemua tarikh semakan dan nama penyunting akan dikekalkan.\nSemua tindakan import transwiki dicatatkan dalam [[Special:Log/import|log import]].",
        "tooltip-preferences-save": "Simpan keutamaan",
        "tooltip-summary": "Berikan ringkasan",
        "common.css": "/* CSS yang terletak di sini akan digunakan pada semua kulit */",
+       "print.css": "/* CSS yang diletakkan di sini akan memberi kesan kepada hasil cetak */",
+       "noscript.css": "/* CSS yang diletakkan di sini akan memberi kesan kepada pengguna dengan JavaScript dimatikan */",
+       "group-autoconfirmed.css": "/* CSS yang diletakkan di sini akan memberi kesan kepada pengguna-pengguna sah automatik sahaja */",
+       "group-user.css": "/* CSS yang diletakkan di sini akan memberi kesan kepada pengguna-pengguna berdaftar sahaja */",
+       "group-bot.css": "/* CSS yang diletakkan di sini akan memberi kesan kepada bot sahaja */",
+       "group-sysop.css": "/* CSS yang diletakkan di sini akan memberi kesan kepada penyelia-penyelia sahaja */",
+       "group-bureaucrat.css": "/* CSS yang diletakkan di sini akan memberi kesan kepada birokrat-birokrat sahaja */",
+       "common.js": "/* Sebarang JavaScript di sini akan dimuatkan untuk semua pengguna pada setiap pemuatan laman. */",
+       "group-autoconfirmed.js": "/* Sebarang JavaScript di sini akan dimuatkan untuk pengguna-pengguna sah automatik sahaja */",
+       "group-user.js": "/* Sebarang JavaScript di sini akan dimuatkan untuk pengguna-pengguna berdaftar sahaja */",
+       "group-bot.js": "/* Sebarang JavaScript di sini akan dimuatkan untuk bot sahaja */",
+       "group-sysop.js": "/* Sebarang JavaScript di sini akan dimuatkan untuk penyelia-penyelia sahaja */",
+       "group-bureaucrat.js": "/* Sebarang JavaScript di sini akan dimuatkan untuk birokrat-birokrat sahaja */",
        "anonymous": "{{PLURAL:$1|Pengguna|Pengguna-pengguna}} {{SITENAME}} tanpa nama",
        "siteuser": "Pengguna {{SITENAME}}, $1",
        "anonuser": "Pengguna {{SITENAME}} tanpa nama $1",
        "newimages-summary": "Laman khas ini memaparkan senarai fail muat naik terakhir.",
        "newimages-legend": "Penapis",
        "newimages-label": "Nama fail (atau sebahagian daripadanya):",
+       "newimages-showbots": "Paparkan muat naik oleh bot",
        "noimages": "Tiada imej.",
        "ilsubmit": "Cari",
        "bydate": "mengikut tarikh",
        "confirm-watch-top": "Tambahkan laman ini ke dalam senarai pantau anda?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Buang laman ini daripada senarai pantau anda?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← halaman sebelumnya",
        "imgmultipagenext": "halaman berikutnya →",
        "imgmultigo": "Pergi!",
        "autosumm-replace": "Mengganti laman dengan '$1'",
        "autoredircomment": "Melencong ke [[$1]]",
        "autosumm-new": "Mencipta laman baru dengan kandungan '$1'",
+       "autosumm-newblank": "Mencipta laman kosong",
        "lag-warn-normal": "Sebarang perubahan baru yang melebihi $1 saat mungkin tidak ditunjukkan dalam senarai ini.",
        "lag-warn-high": "Disebabkan oleh kelambatan pelayan pangkalan data, sebarang perubahan baru yang melebihi $1 saat mungkin tidak ditunjukkan dalam senarai ini.",
        "watchlistedit-normal-title": "Sunting senarai pantau",
        "watchlistedit-raw-done": "Senarai pantau anda telah dikemaskinikan.",
        "watchlistedit-raw-added": "$1 tajuk ditambah:",
        "watchlistedit-raw-removed": "$1 tajuk telah dibuang:",
+       "watchlistedit-clear-title": "Senarai pantau kosong",
+       "watchlistedit-clear-legend": "Kosongkan senarai pantau",
+       "watchlistedit-clear-explain": "Semua tajuk akan dikeluarkan dari senarai pantau anda",
+       "watchlistedit-clear-titles": "Tajuk-tajuk:",
        "watchlistedit-clear-submit": "Kosongkan senarai pantau (Ini adalah kekal!)",
        "watchlistedit-clear-done": "Senarai pantau anda telah dikosongkan.",
        "watchlistedit-clear-removed": "{{PLURAL:$1|Satu|$1}} tajuk telah dikeluarkan.",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|bincang]])",
        "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\".",
        "version": "Versi",
        "version-extensions": "Penyambung yang dipasang",
        "version-skins": "Rupa-rupa yang telah dipasangkan",
        "version-hook-name": "Nama penyangkuk",
        "version-hook-subscribedby": "Dilanggan oleh",
        "version-version": "(Versi $1)",
+       "version-no-ext-name": "[tiada nama]",
        "version-license": "Lesen MediaWiki",
        "version-ext-license": "Lesen",
        "version-ext-colheader-name": "Sambungan",
+       "version-skin-colheader-name": "Rupa",
        "version-ext-colheader-version": "Versi",
        "version-ext-colheader-license": "Lesen",
        "version-ext-colheader-description": "Keterangan",
        "htmlform-no": "Tidak",
        "htmlform-yes": "Ya",
        "htmlform-chosen-placeholder": "Pilih satu pilihan",
+       "htmlform-cloner-create": "Tambah lebih",
+       "htmlform-cloner-delete": "Buang",
+       "htmlform-cloner-required": "Sekurang-kurangnya satu nilai diperlukan.",
        "sqlite-has-fts": "$1 dengan sokongan carian teks penuh",
        "sqlite-no-fts": "$1 tanpa sokongan carian teks penuh",
        "logentry-delete-delete": "$1 telah {{GENDER:$2|menghapuskan}} laman $3",
        "logentry-rights-rights": "$1 telah {{GENDER:$2|menukar}} keahlian kumpulan untuk $3 dari $4 ke $5",
        "logentry-rights-rights-legacy": "$1 telah {{GENDER:$2|menukar}} keahlian kumpulan untuk $3",
        "logentry-rights-autopromote": "$1 telah {{GENDER:$2|dinaik pangkat}} secara automatik dari $4 ke $5",
+       "logentry-upload-upload": "$1 telah {{GENDER:$2|muat naik}} $3",
+       "logentry-upload-overwrite": "$1 telah {{GENDER:$2|muat naik}} versi baru $3",
+       "logentry-upload-revert": "$1 telah {{GENDER:$2|muat naik}} $3",
        "rightsnone": "(tiada)",
        "feedback-bugornote": "Jika anda bersedia untuk menerangkan masalah teknikal secara terperinci, sila [$1 laporkan pepijat]. \nAtaupun, anda boleh menggunakan borang yang mudah di bawah. Ulasan anda akan dicatatkan pada laman \"[$3 $2]\", beserta nama pengguna anda dan pelayar yang anda gunakan.",
        "feedback-subject": "Perkara:",
        "expand_templates_remove_nowiki": "Sekat tag <nowiki> dalam hasil",
        "expand_templates_generate_xml": "Papar pepohon hurai XML",
        "expand_templates_generate_rawhtml": "Paparkan HTML mentah",
-       "expand_templates_preview": "Pralihat"
+       "expand_templates_preview": "Pralihat",
+       "pagelanguage": "Pemilih bahasa laman",
+       "pagelang-name": "Laman",
+       "pagelang-language": "Bahasa",
+       "pagelang-use-default": "Gunakan bahasa asli",
+       "pagelang-select-lang": "Pilih bahasa",
+       "right-pagelang": "Mengubah bahasa laman",
+       "action-pagelang": "mengubah bahasa laman",
+       "log-name-pagelang": "Log perubahan bahasa",
+       "log-description-pagelang": "Ini adalah log untuk perubahan-perubahan bahasa laman.",
+       "logentry-pagelang-pagelang": "$1 telah {{GENDER:$2|mengubahkan}} bahasa untuk laman $3 dari $4 ke $5.",
+       "default-skin-not-found": "Whoops! Rupa asli untuk wiki anda (<code>$wgDefaultSkin</code>), <code>$1</code>, tidak disediakan.\n\nPasangan anda kelihatan untuk mempunyai rupa-rupa berikut. Lihat [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] untuk maklumat cara membolehkan mereka dan memilih yang asli.\n\n$2\n\n; Jika anda baru sahaja memasang MediaWiki:\n: Anda kemungkinan memasang dari git, atau terus dari kod sumber melalui cara lain. Ini adalah dijangka. Cubalah memasang beberapa rupa dari [https://www.mediawiki.org/wiki/Category:All_skins panduan rupa mediawiki.org], dengan:\n:* Memuat turun [https://www.mediawiki.org/wiki/Download pemasang tarball] yang terlengkap dengan beberapa rupa dan sambungan. Anda boleh menyalin dan menampal direktori <code>skins/</code> terus darinya.\n:* Mengeklon salah satu repositori <code>mediawiki/skins/*</code> melalui git ke dalam direktori <code>skins/</code> pasangan MediaWiki anda.\n: Perbuatan ini tidak patut mengganggu repositori git anda jika anda seorang pembangun MediaWiki.\n\n; Jika anda baru sahaja menaik taraf MediaWiki:\n: MediaWiki 1.24 dan ke atas tidak lagi membolehkan rupa-rupa yang dipasang secara automatik (lihat [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:Skin autodiscovery]). Anda boleh menampalkan baris-baris berikut ke dalam <code>LocalSettings.php</code> untuk membolehkan semua rupa yang semasa dipasang:\n\n<pre>$3</pre>\n\n; Jika anda baru sahaja mengubah <code>LocalSettings.php</code>:\n: Semakkan lagi nama-nama rupa untuk kesalahan ejaan.",
+       "default-skin-not-found-no-skins": "Whoops! Rupa asli untuk wiki anda (<code>$wgDefaultSkin</code>), <code>$1</code>, tidak disediakan.\n\nAnda tidak mempunyai rupa-rupa yang dipasang.\n\n; Jika anda baru sahaja memasang atau menaik taraf MediaWiki:\n: Anda kemungkinan memasang dari git, atau terus dari kod sumber melalui cara lain. Ini adalah dijangka. MediaWiki 1.24 dan ke atas tidak memasuki sebarang rupa dalam repositori utama. Cubalah memasang beberapa rupa dari [https://www.mediawiki.org/wiki/Category:All_skins panduan rupa mediawiki.org], dengan:\n:* Memuat turun [https://www.mediawiki.org/wiki/Download pemasang tarball] yang terlengkap dengan beberapa rupa dan sambungan. Anda boleh menyalin dan menampal direktori <code>skins/</code> terus darinya.\n:* Mengeklon salah satu repositori <code>mediawiki/skins/*</code> melalui git ke dalam direktori <code>skins/</code> pasangan MediaWiki anda.\n: Perbuatan ini tidak patut mengganggu repositori git anda jika anda seorang pembangun MediaWiki. Lihat [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] untuk maklumat cara membolehkan mereka dan memilih yang asli.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (dibolehkan)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''dimatikan''')"
 }
index edff6ba..3983159 100644 (file)
        "searchprofile-advanced-tooltip": "Fittex fi spazji tal-isem personalizzati",
        "search-result-size": "$1 ({{PLURAL:$2|1 word|$2 kliem}})",
        "search-result-category-size": "{{PLURAL:$1|membru wieħed|$1 membri}} ({{PLURAL:$2|sottokategorija waħda|$2 sottokategoriji}}, {{PLURAL:$3|fajl wieħed|$3 fajls}})",
-       "search-result-score": "Relevanza: $1%",
        "search-redirect": "(rindirizza $1)",
        "search-section": "(sezzjoni $1)",
        "search-suggest": "Trid tfisser: $1",
        "uploadwarning": "Twissija dwar it-tlugħ tal-fajls",
        "uploadwarning-text": "Jekk jogħġbok immodifika hawn taħt id-deskrizzjoni tal-fajl u pprova mill-ġdid.",
        "savefile": "Salva l-fajl",
-       "uploadedimage": "tella' \"[[$1]]\"",
-       "overwroteimage": "Verżjoni ġdida ġiet imtella' \"[[$1]]\"",
        "uploaddisabled": "Skuzana, però ''uploads'' ta' fajls huwa temporalment sospiż.",
        "copyuploaddisabled": "It-tlugħ mill-URL huwa diżattivat.",
        "uploaddisabledtext": "It-tlugħ ta' fajls mhuwiex attiv.",
        "watchlist-details": "Il-lista ta' osservazzjoni fiha {{PLURAL:$1|paġna waħda (u l-paġna ta' diskussjoni tagħha)|$1 paġni (u l-paġni ta' diskussjoni tagħhom)}}.",
        "wlheader-enotif": "In-notifikazzjoni bl-użu tal-posta elettronika hija attivata.",
        "wlheader-showupdated": "Il-paġni li ġew editjati wara l-aħħar żjara tiegħek qed jiġu murija b'tipa '''ħoxna'''",
+       "wlnote": "Hawn taħt hawn {{PLURAL:$1|l-aħħar modifika|l-aħħar '''$1''' modifiki}} fl-aħħar {{PLURAL:$2|siegħa|'''$2''' siegħat}}, sal-$3, fil-$4.",
        "wlshowlast": "Uri l-aħħar $1 siegħat $2 ġranet $3",
        "watchlist-options": "Opzjonijiet tal-lista ta' osservazzjoni",
        "watching": "Imsegwi...",
index 7ad868f..3e81d22 100644 (file)
        "talkpagelinktext": "Cumbersar",
        "specialpage": "Páigina special",
        "personaltools": "Ferramientas pessonales",
-       "postcomment": "Nuobo cacho",
        "articlepage": "Ber páigina de cuntenido",
        "talk": "Çcusson",
        "views": "Besitas",
        "yourdomainname": "L tou domínio",
        "login": "Antrar",
        "nav-login-createaccount": "Antrar / criar cuonta",
-       "loginprompt": "Tenes que tener ls <i>cookies</i> atibos para te outenticares an{{SITENAME}}.",
        "userlogin": "Antrar / criar cuonta",
        "logout": "Salir",
        "userlogout": "Salir",
        "filesource": "Fuonte:",
        "ignorewarnings": "Eignorar qualquiera abiso",
        "savefile": "Grabar fexeiro",
-       "uploadedimage": "cargou \"[[$1]]\"",
        "watchthisupload": "Begiar este fexeiro",
        "upload-curl-error28": "Ultrapassado l tiempo lhemite pa l ambio de l fexeiro",
        "license": "Lhicença:",
index ed24060..6620607 100644 (file)
        "talkpagelinktext": "ဆွေးနွေးရန်",
        "specialpage": "အထူး စာမျက်နှာ",
        "personaltools": "ကိုယ်ပိုင် ကိရိယာများ",
-       "postcomment": "အပိုင်းသစ်",
        "articlepage": "မာတိကာ ကြည့်ရန်",
        "talk": "ဆွေးနွေးချက်များ",
        "views": "ပုံပန်းသွင်ပြင်",
        "yourdomainname": "သင့်ဒိုမိန်း -",
        "login": "Log in ဝင်ရန်",
        "nav-login-createaccount": "Log in ဝင်ရန်/ အကောင့် လုပ်ရန်",
-       "loginprompt": "{{SITENAME}} သို့ လော့အင်ဝင်ရန် ကွတ်ကီးသုံးနိုင်ရန် ပြုလုပ်ပေးထားရမည်။",
        "userlogin": "Log in ဝင်ရန်/ အကောင့် လုပ်ရန်",
        "userloginnocreate": "Log in ဝင်ရန်",
        "logout": "ထွက်ရန်",
        "searchprofile-advanced-tooltip": "စိတ်ကြိုက်အမည်ညွှန်းများတွင် ရှာရန်",
        "search-result-size": "$1 ({{PLURAL:$2|စကားလုံး 1 လုံး|စကားလုံး $2 လုံး}})",
        "search-result-category-size": "{{PLURAL:$1|အသင်းဝင်တစ်ခု|အသင်းဝင် $1 ခု}} ({{PLURAL:$2|ကဏ္ဍခွဲတစ်ခု|ကဏ္ဍခွဲ $2 ခု}}, {{PLURAL:$3|ဖိုင်တစ်ခု|ဖိုင် $3 ခု}})",
-       "search-result-score": "ကိုက်ညီမှုရာနှုန်း - $1%",
        "search-redirect": "($1 သို့ ပြန်ညွှန်းသည်)",
        "search-section": "(အပိုင်း $1)",
        "search-suggest": "$1 ဟု ဆိုလိုပါသလား။",
        "largefileserver": "ဤဖိုင်သည် ဆာဗာတွင် ခွင့်ပြုရန်သတ်မှတ်ထားသော ဖိုင်အရွယ်အစားထက် ကြီးနေသည်။",
        "uploadwarning": "Upload တင်ရာတွင် သတ်ပေးချက်",
        "savefile": "ဖိုင်သိမ်းရန်",
-       "uploadedimage": "\"[[$1]]\" ပုံကို တင်ပြီးပြီဖြစ်သည်",
-       "overwroteimage": "\"[[$1]]\" ၏ မူသစ်ကို upload တင်လိုက်ပြီ",
        "uploaddisabled": "Upload တင်ခြင်း ပိတ်ထားသည်။",
        "copyuploaddisabled": "URL လင့်မှ Upload တင်ခြင်း ပိတ်ထားသည်။",
        "uploaddisabledtext": "ဖိုင်တင်ခြင်းများကို ပိတ်ထားသည်။",
index 4c29381..70704c7 100644 (file)
        "talkpagelinktext": "Кортнеме",
        "specialpage": "Башка тевень лопа",
        "personaltools": "Эсень кедьёнкст",
-       "postcomment": "Од явкс",
        "articlepage": "Ваномс потмокслопанть",
        "talk": "Кортнеме",
        "views": "Ваномкат",
        "password-change-forbidden": "Те викисэнть а полавтсак салававалот.",
        "login": "Совамо",
        "nav-login-createaccount": "Совамо / тейть совамотарка",
-       "loginprompt": "{{SITENAME}} сайтэнтень совамга эряви нолдамс тевс cookies.",
        "userlogin": "Совамо / тейть совамотарка",
        "userloginnocreate": "Совамо",
        "logout": "Лисеме",
        "file-exists-duplicate": "Те кавонзавкс файла вана {{PLURAL:$1|1=те файланть|неть файлатнень}} эйстэ:",
        "uploadwarning": "Совавтомадо кардамонь пачтямо",
        "savefile": "Ванстомс файланть",
-       "uploadedimage": "йовкстазь \"[[$1]]\"",
-       "overwroteimage": "Ёвкстамс \"[[$1]]\" файлань од версия",
        "uploaddisabled": "Совавтомась лоткавтозь",
        "uploadvirus": "Те файласонть вирус програм! Информация: $1",
        "upload-source": "Лисьмапрякс файла",
        "watchlisttools-raw": "Витнеме-петнеме верек ваномалопанть",
        "duplicate-defaultsort": "'''Ванок!''' Рядс аравтомань те \"$2\" панжомась саеви те \"$1\" панжомадо икеле.",
        "version": "Версия",
+       "version-skins": "Лангт",
        "version-specialpages": "Башка тевень лопат",
        "version-variables": "Полавтневикс тевть",
-       "version-skins": "Лангт",
        "version-other": "Лия",
        "version-hooks": "Кечказт",
        "version-hook-name": "Кечказонть лемезэ",
index b194711..b22d111 100644 (file)
@@ -77,7 +77,7 @@
        "may_long": "مه",
        "june": "ژوئن",
        "july": "ژوئیه",
-       "august": "ئÙ\80Ù\88Ú¯Ù\80Ù\87â\80\8cسÙ\80ت",
+       "august": "Ø¢Ú¯Ù\88ست",
        "september": "سـه‌پـتـه‌مـبـر",
        "october": "اکتبر",
        "november": "نـووه‌مـبـر",
@@ -89,7 +89,7 @@
        "may-gen": "مه",
        "june-gen": "جـون",
        "july-gen": "ژوئیه",
-       "august-gen": "ئÙ\88Ú¯Ù\80Ù\87â\80\8cسÙ\80ت",
+       "august-gen": "Ø¢Ú¯Ù\88ست",
        "september-gen": "سـه‌پـتـه‌مـبـر",
        "october-gen": "اکتبر",
        "november-gen": "نـووه‌مـبـر",
        "uploadbtn": "باربی‌یشتن فایل",
        "uploadtext": "فرم زیر جه باربی‌یشتن نو پرونده‌ئون وسّه استفاده هاکنین.\nبدی‌ین پرونده‌ئونی که قبلاً باربی‌یشته بَینه به [[Special:FileList|فهرست پرونده‌ها]] بورین. باربی‌یشتن مجدد [[Special:Log/upload|سیاههٔ بارگذاری‌ها]] و حذف پرونده‌ئون [[Special:Log/delete|deletion log]] دله ثبت وانه.\n\nبعد از این که پرونده‌یی ره باربی‌یشتنی، به این سه شکل بنشنه وه ره صفحه‌ئون دله بی‌یشتن:\n\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' استفاده از نسخه کامل پرونده وسّه\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' استفاده از اتا نسخه ۲۰۰ پیکسلی از پرونده که اتا جعبه سمت چپ متن دله دره و عبارت alt text ونه دله به عنوان توضیح استفاده بیّه وسّه\n*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' بساتن اتا پیوند مستقیم به پرونده بدون نمایش پرونده",
        "uploadlogpage": "باربی‌یشتن گزارش",
-       "uploadedimage": "\"[[$1]]\" ره باربی‌یشته",
        "imgfile": "فایل",
        "listfiles": "هارشی ئون ره لیست",
        "listfiles_name": "نـوم",
index 71e6514..6426b3a 100644 (file)
        "talkpagelinktext": "Tèìxnàmikilistli",
        "specialpage": "Nònkuâkìskàtlaìxtlapalli",
        "personaltools": "In tlein nitēquitiltilia",
-       "postcomment": "Yancuīc xeliuhcāyōtl",
        "articlepage": "Xiquittaz in tlahcuilōlli",
        "talk": "tēixnāmiquiliztli",
        "views": "Tlachiyaliztli",
        "yourdomainname": "Moāxcāyō",
        "login": "Ximomachiyōmaca/Ximocalaqui",
        "nav-login-createaccount": "Ximocalaqui / ximomachiyōmaca",
-       "loginprompt": "Tihuīquilia tiquimpiyāz cookies ic ticalaquīz {{SITENAME}}.",
        "userlogin": "Ximomachiyōmaca/Ximocalaqui",
        "userloginnocreate": "Ximocalaqui",
        "logout": "Tiquīzāz",
        "large-file": "Mā tlahcuilōlli ahmo achi huēiyac $1; inīn cah $2.",
        "fileexists-extension": "Tlahcuilōlli zan iuh tōcātica ia: [[$2|thumb]]\n* Tlahcuilōlli moquetzacah: <strong>[[:$1]]</strong>\n* Tlahcuilōlli tlein ia ītōca: <strong>[[:$2]]</strong>\nTimitztlātlauhtiah, xitlahcuiloa occē tōcāitl.",
        "savefile": "Quipiyāz tlahcuilōlli",
-       "uploadedimage": "ōmoquetz \"[[$1]]\"",
-       "overwroteimage": "ōmoquetz yancuīc \"[[$1]]\" iuhcāyōtl",
        "uploaddisabled": "Ahmo mohuelīti tlahcuilōlquetzā",
        "uploaddisabledtext": "Ahmo huelīti moquetzazqueh tlahcuilōlli.",
        "sourcefilename": "Tōcāhuīcpa:",
index 17a3128..ea9c9dc 100644 (file)
        "tog-underline": "Sottolinia 'e jonte:",
        "tog-hideminor": "Annascunne 'e cagne piccirille  'int'a ll'úrdeme cagne",
        "tog-hidepatrolled": "Annascunne 'e cagne 'verificate' 'int'a ll'úrdeme cagne",
+       "tog-newpageshidepatrolled": "Annascunne 'e paggene cuntrullate 'a ll'elenco 'e ppaggene",
        "tog-extendwatchlist": "Spanne ll'asservate speciale pe fà vedé tutte 'e cagnàmiente, nun solo l'ultimo",
        "tog-usenewrc": "Urdeme càgnamiente avanzate (JavaScript)",
        "tog-numberheadings": "Annúmmera automatecamente 'e títule",
        "tog-showtoolbar": "Aspone 'a barra d''e stromiente 'e cagno",
        "tog-editondblclick": "Cagna 'e pàggene cliccanno ddoje vote",
        "tog-editsectiononrightclick": "Permette 'e cangne 'e sezzione cliccanno p''o tasto destro ncopp 'e titule 'e sezzione",
+       "tog-watchcreations": "Azzecca 'e ppaggene criate e li files carrecate ncopp'â l'elenco 'e cuntrollo",
+       "tog-watchdefault": "Azzecca 'e paggene e li files cagnàte a l'elenco 'e cuntrollo",
+       "tog-watchmoves": "Azzecca 'e paggene e li files spustate a l'elenco 'e cuntrollo",
+       "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-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-enotifminoredits": "Famme na masciata mail pure quanno se fanno cagnamiente piccerille 'e paggene e files",
+       "tog-enotifrevealaddr": "Fa' vedé 'o ndirizzo mail ncopp'e mmasciate 'e notifica",
+       "tog-shownumberswatching": "Fa' vedé 'o nummero d'utente che teneno 'a paggena cuntrullata",
+       "tog-oldsig": "Firma 'e mmo:",
+       "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-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-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",
+       "tog-useeditwarning": "Famme sapé quanno lasso na paggena 'e mudifeca senza sarvà 'e cagnamiente",
+       "tog-prefershttps": "Usa sempe na connessione sicura quanno s'accummincia sessione",
        "underline-always": "Sèmpe",
        "underline-never": "Màje",
+       "underline-default": "Tiene sempe le mpostazzione d' 'o navigatóre",
+       "editfont-style": "Stile 'e carattere dint' 'a casella 'e testo",
+       "editfont-default": "Predefinito d' 'o navigatóre",
+       "editfont-monospace": "Carattere a larghezza fissa",
+       "editfont-sansserif": "Carattere sans-serif",
+       "editfont-serif": "Carattere Serif",
        "sunday": "dumméneca",
        "monday": "lunnerì",
        "tuesday": "marterì",
        "category_header": "Paggene rìnt'a categurìa \"$1\"",
        "subcategories": "Categurìe secunnarie",
        "category-media-header": "File 'int'â categuría \"$1\"",
+       "category-empty": "<em>Chista categurìa p' 'o mumento nun tene pàggene o media.</em>",
        "hidden-categories": "{{PLURAL:$1|Categurìa annascusa|Categuríe annascuse}}",
+       "hidden-category-category": "Categurìe annascuse",
        "category-subcat-count": "{{PLURAL:$2|Chesta categurìa cuntene n'unneca sottocategurìa, nzignata 'e seguito.|Chesta categurìa cuntene {{PLURAL:$1|'a sottocategurìa nzignata|'e $1 sottocategurìe nzignate}} 'e seguito, 'a nu totale 'e $2.}}",
+       "category-subcat-count-limited": "Chista categurìa tene sti {{PLURAL:$1|sottocategurìa|$1 sottocategurìe}}.",
        "category-article-count": "{{PLURAL:$2|Chesta categurìa cuntiene un'unneca paggena, nzignata ccà sotto.|Chesta categurìa cuntiene {{PLURAL:$1|'a paggena nzignata|'e $1 paggene nzignate}} ccà sotto, faccenno nu totale 'e $2.}}",
+       "category-article-count-limited": "Chista categurìa téne {{PLURAL:$1|sta pàggena|sti $1 pàggene}} dinto.",
+       "category-file-count": "{{PLURAL:$2|Chista categurìa cunténe nu file solo, nzignato ccà sotto.|Chista categurìa cunténe {{PLURAL:$1|nu file, nzignato|$1 file nzignate}} ccà sotto, faccenno nu totale 'e $2.}}",
+       "category-file-count-limited": "Chista categurìa téne {{PLURAL:$1|sta pàggena|sti $1 pàggene}} dinto.",
        "listingcontinuesabbrev": "cont.",
        "index-category": "Paggene ennecezzate",
        "noindex-category": "Paggene nun ennecezzate",
        "moredotdotdot": "Cchiù...",
        "morenotlisted": "Chisto elenco nun è cumpreto.",
        "mypage": "Paggena",
-       "mytalk": "'E mmie chiàcchieriate",
+       "mytalk": "'E chiàcchieriate mmie",
        "anontalk": "Chiacchierate pe chisto IP",
        "navigation": "Navigazzione",
        "and": "&#32;e",
        "recentchangeslinked-page": "Nomme dda paggena",
        "upload": "Careca file",
        "filedesc": "Énnece",
-       "uploadedimage": "ha carecato \"[[$1]]\"",
        "license": "Licenze:",
        "license-header": "Licenza",
        "licenses-edit": "Càgna opzziune 'e licenza",
index 8811cd0..109f0ff 100644 (file)
        "talkpagelinktext": "Diskuschoon",
        "specialpage": "Spezialsiet",
        "personaltools": "Persönliche Warktüüch",
-       "postcomment": "Afsnidd tofögen",
        "articlepage": "Artikel",
        "talk": "Diskuschoon",
        "views": "Ansichten",
        "externaldberror": "Dat geev en Fehler bi de externe Authentifizerungsdatenbank oder du dröffst dien extern Brukerkonto nich ännern.",
        "login": "Anmellen",
        "nav-login-createaccount": "Nee Konto anleggen oder anmellen",
-       "loginprompt": "Dat du di bi {{SITENAME}} anmellen kannst, musst du Cookies anstellt hebben.",
        "userlogin": "Nee Konto anleggen oder anmellen",
        "userloginnocreate": "Anmellen",
        "logout": "Afmellen",
        "searchprofile-advanced-tooltip": "Söök in angevene Naamrüüm",
        "search-result-size": "$1 ({{PLURAL:$2|een Woort|$2 Wöör}})",
        "search-result-category-size": "{{PLURAL:$1|1 Sied|$1 Sieden}} ({{PLURAL:$2|1 Ünnerkategorie|$2 Ünnerkategorien}}, {{PLURAL:$3|1 Datei|$3 Datein}})",
-       "search-result-score": "Relevanz: $1 %",
        "search-redirect": "(Redirect $1)",
        "search-section": "(Afsnitt $1)",
        "search-suggest": "Hest du „$1“ meent?",
        "file-deleted-duplicate": "Jüst disse Datei ([[:$1]]) is al mal löscht worrn. Kiek man eerst, wat in dat Löschlogbook steiht, ehrdat du ehr noch wedder hoochlaadst.",
        "uploadwarning": "Wohrschau",
        "savefile": "Datei spiekern",
-       "uploadedimage": "„$1“ hoochladen",
-       "overwroteimage": "Ne’e Version vun „[[$1]]“ hoochlaadt",
        "uploaddisabled": "Dat Hoochladen is deaktiveert.",
        "uploaddisabledtext": "Dat Hoochladen vun Datein is utschalt.",
        "php-uploaddisabledtext": "Dat Hoochladen vun Datein is in PHP utstellt. Kiek de file_uploads-Instellungen na.",
        "watchlist-details": "{{PLURAL:$1|Ene Siet is|$1 Sieden sünd}} op dien Oppasslist (ahn Diskuschoonssieden).",
        "wlheader-enotif": "Benarichtigen per E-Mail is anstellt.",
        "wlheader-showupdated": "Sieden, de siet dien letzten Besöök ännert worrn sünd, warrt '''fett''' wiest.",
+       "wlnote": "Ünnen {{PLURAL:$1|steiht de letzte Ännern|staht de letzten $1 Ännern}} vun de {{PLURAL:$2|letzte Stünn|letzten '''$2''' Stünnen}}.",
        "wlshowlast": "Wies de letzten $1 Stünnen $2 Daag $3",
        "watchlist-options": "Optionen för de Oppasslist",
        "watching": "warrt op de Oppasslist ropsett...",
index 8e77368..fa563b2 100644 (file)
        "talkpagelinktext": "Bolela",
        "specialpage": "Matlaka a itšeng",
        "personaltools": "Dithulusu tša gago (''personal'')",
-       "postcomment": "Sekgao se sempsha",
        "articlepage": "Nyakoretša letlakala la mateng",
        "talk": "Poledišano",
        "views": "Dinyakorêtšo",
        "remembermypassword": "Gopola sedi yaka ya go tsena khomphutha ye (bogolo bja  $1 ya {{PLURAL:$1| letšatši le|matšatši a}})",
        "login": "Tsena",
        "nav-login-createaccount": "Tsena / Tlhola tšhupaleloko (''account'')",
-       "loginprompt": "O swanela ke go dumella ''cookies'' go ''browser'' go tsena go {{SITENAME}}.",
        "userlogin": "Tsena / tlhola tšhupaleloko (''account'')",
        "logout": "Etšwa/Tswalela",
        "userlogout": "Etšwa/Tswalela",
        "fileuploadsummary": "Kakaretšo:",
        "filesource": "Mothopo:",
        "savefile": "Boloka faele",
-       "uploadedimage": "\"[[$1]]\" e loketšwe",
        "watchthisupload": "Tlhapetša ''faele'' ye",
        "license": "Laesense/Tumello:",
        "license-header": "Laesense",
index 800f321..771ad10 100644 (file)
        "searchprofile-advanced-tooltip": "Recercar dins d'espacis de noms personalizats",
        "search-result-size": "$1 ({{PLURAL:$2|1 mot|$2 mots}})",
        "search-result-category-size": "$1 membre{{PLURAL:$1||s}} ($2 soscategoria{{PLURAL:$2||s}}, $3 fichièr{{PLURAL:$3||s}})",
-       "search-result-score": "Pertinéncia : $1%",
        "search-redirect": "(redireccion cap a $1)",
        "search-section": "(seccion $1)",
        "search-file-match": "(correspond al contengut del fichièr)",
        "uploadwarning": "Atencion !",
        "uploadwarning-text": "Modificatz la descripcion del fichièr e ensajatz tornarmai.",
        "savefile": "Salvar lo fichièr",
-       "uploadedimage": "«[[$1]]» copiat sul servidor",
-       "overwroteimage": "a importat una version novèla de « [[$1]] »",
        "uploaddisabled": "O planhèm, lo mandadís de fichièr es desactivat.",
        "copyuploaddisabled": "Mandadís de fichièr per URL desactivat.",
        "uploaddisabledtext": "L'impòrt de fichièrs cap al servidor es desactivat.",
        "watchlist-details": "I a {{PLURAL:$1|$1 pagina|$1 paginas}} dins vòstra lista de seguiment, sens comptar las paginas de discussion.",
        "wlheader-enotif": "La notificacion per corrièr electronic es activada.",
        "wlheader-showupdated": "Las paginas que son estadas modificadas dempuèi vòstra darrièra visita son afichadas en '''gras'''.",
+       "wlnote": "Çaijós {{PLURAL:$1|se tròba la darrièra modificacion efectuada|se tròban las $1 darrièras modificacions efectuadas}} pendent {{PLURAL:$2|la darrièra ora|las '''$2''' darrièras oras}} dempuèi $3, $4.",
        "wlshowlast": "Far veire las darrièras $1 oras, los darrièrs $2 jorns, o $3.",
        "watchlist-options": "Opcions de la lista de seguiment",
        "watching": "Seguit...",
index b64b5e6..a9dcc46 100644 (file)
        "talkpagelinktext": "କଥାଭାଷା",
        "specialpage": "ବିଶେଷ ପୃଷ୍ଠା",
        "personaltools": "ନିଜର ଟୁଲ",
-       "postcomment": "ନୂଆ ଭାଗ",
        "articlepage": "ସୂଚୀ ପୃଷ୍ଠାଟି ଦେଖାଇବେ",
        "talk": "ଆଲୋଚନା",
        "views": "ଦେଖା",
        "externaldberror": "ବୋଧ ହୁଏ ଚିହ୍ନଟ ଡାଟାବେସ ଭୁଲଟିଏ ହୋଇଥିଲା ବା ଆପଣଙ୍କୁ ନିଜର ବାହାର ଖାତା ଅପଡେଟ କରିବା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ ।",
        "login": "ଲଗ-ଇନ (Log in)",
        "nav-login-createaccount": "ଲଗ ଇନ /ନୂଆ ଖାତା ଖୋଲନ୍ତୁ",
-       "loginprompt": "{{SITENAME}}ରେ ଲଗ ଇନ କରିବାପାଇଁ ଆପଣଙ୍କୁ '''କୁକି''' ସଚଳ କରିବାକୁ ପଡ଼ିବ ।",
        "userlogin": "ଲଗ ଇନ /ନୂଆ ଖାତା ଖୋଲନ୍ତୁ",
        "userloginnocreate": "ଲଗ-ଇନ (Log in)",
        "logout": "ଲଗଆଉଟ",
        "searchprofile-advanced-tooltip": "ନିଜେ ତିଆରିକରିହେବା ଭଳି ନେମସ୍ପେସରେ ଖୋଜିବେ",
        "search-result-size": "$1 ({{PLURAL:$2|1 ଶବ୍ଦ|$2 ଶବ୍ଦ}})",
        "search-result-category-size": "{{PLURAL:$1|ଜଣେ ସଭ୍ୟ|$1 ଜଣ ସଭ୍ୟ}} ({{PLURAL:$2|ଗୋଟିଏ ଶ୍ରେଣୀy|$2ଟି ଶ୍ରେଣୀ ସମୂହ}}, {{PLURAL:$3|ଗୋଟିଏ ଫାଇଲ|$3ଟି ଫାଇଲ}})",
-       "search-result-score": "ପ୍ରାସଙ୍ଗିକତା: $1%",
        "search-redirect": "($1 କୁ ଆଗକୁ ବଢେଇନିଅ )",
        "search-section": "(ଭାଗ $1)",
        "search-suggest": "ଆପଣ $1 ଭାବି ଖୋଜିଥିଲେ କି?",
        "uploadwarning": "ଅପଲୋଡ଼ ଚେତାବନୀ",
        "uploadwarning-text": "ତଳେ ଥିବା ଫାଇଲର ବିବରଣୀ ବଦଳାଇ ଆଉ ଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।",
        "savefile": "ଫାଇଲ ସାଇତିବା",
-       "uploadedimage": "\"[[$1]]\" ଅପଲୋଡ କରାଗଲା",
-       "overwroteimage": "\"[[$1]]\"ର ନୂଆ ସଙ୍କଳନଟିଏ ଅପଲୋଡ଼ କରାଗଲା",
        "uploaddisabled": "ଅପଲୋଡ଼ କରିବା ଅଚଳ କରାଯାଇଅଛି ।",
        "copyuploaddisabled": "URL ଦେଇ ଅପଲୋଡ଼ କରିବାକୁ ଅଚଳ କରାଯାଇଅଛି ।",
        "uploaddisabledtext": "ଫାଇଲ ଅପଲୋଡ଼  ଅଚଳ କରାଯାଇଅଛି ।",
        "watchlist-details": "ଆପଣଙ୍କ ଦେଖଣା ତାଲିକାରେ {{PLURAL:$1|$1 ଟି ପୃଷ୍ଠା|$1 ଟି ପୃଷ୍ଠା}} ଅଛି, ଆଲୋଚନା ପୃଷ୍ଠାମାନଙ୍କୁ ଅଲଗା ଗଣାଯାଇନାହିଁ ।",
        "wlheader-enotif": "ଇମେଲ ସୂଚନା ସଚଳ କରାଗଲା ।",
        "wlheader-showupdated": "ଆପଣ ଶେଷଥର ଦେଖିଥିବା ପୃଷ୍ଠାଗୁଡ଼ିକ '''ମୋଟା ଅକ୍ଷର'''ରେ ଦେଖାଯାଉଅଛି ।",
+       "wlnote": "$3, $4 ସୁଦ୍ଧା ବିଗତ {{PLURAL:$2|ଘଣ୍ଟେ ଭିତରେ|'''$2''' ଘଣ୍ଟା ଭିତରେ}} ଘଟିଥିବା {{PLURAL:$1|ଶେଷ ବଦଳଟି ଅଛି|ଶେଷ '''$1''' ଟି ବଦଳ}} ତଳେ ଦିଆଯାଇଛି ।",
        "wlshowlast": "ଶେଷ $1 ଘଣ୍ଟା $2 ଦିନ $3 ଦେଖାଇବେ",
        "watchlist-options": "ଦେଖଣା ବିକଳ୍ପସବୁ",
        "watching": "ଦେଖୁଛି...",
        "duplicate-defaultsort": "'''ସୂଚନା:''' ଆପେଆପେ କାମକରୁଥିବା \"$2\" ଆଗରୁ ଆପେ ଆପେ ସଜାଡୁଥିବା \"$1\"କୁ ବନ୍ଦ କରିଦେଇଛି ।",
        "version": "ସଂସ୍କରଣ",
        "version-extensions": "ଇନଷ୍ଟଲ କରାହୋଇଥିବା ଏକ୍ସଟେନସନସବୁ",
+       "version-skins": "ବହିରାବରଣ",
        "version-specialpages": "ବିଶେଷ ପୃଷ୍ଠା",
        "version-parserhooks": "ପାର୍ସର ହୁକ",
        "version-variables": "ଚଳ",
        "version-antispam": "ଅଦରକାରୀ ମେଲ ଅଟକ",
-       "version-skins": "ବହିରାବରଣ",
        "version-other": "ବାକି",
        "version-mediahandlers": "ମିଡ଼ିଆ ହ୍ୟାଣ୍ଡଲର",
        "version-hooks": "ହୁକ",
index 492a1f4..9ff15c2 100644 (file)
        "talkpagelinktext": "Ныхас",
        "specialpage": "Сæрмагонд фарс",
        "personaltools": "Хион фæрæзтæ",
-       "postcomment": "Ног хай",
        "articlepage": "Фенын уац",
        "talk": "Тæрхон",
        "views": "Æркæстытæ",
        "externaldberror": "Кæнæ аутентификацийы рарддоны рæдыд æрцыдис, кæнæ та дæуæн нæй бар снæуæг кæнын дæ æддаг аккаунт.",
        "login": "Бахизын",
        "nav-login-createaccount": "Бахизын / срегистраци кæнын",
-       "loginprompt": "Дæ cookies хъуамæ иу уой цæмæй дæ бон уа бахизын {{grammar:allative|{{SITENAME}}}}.",
        "userlogin": "Бахизын / регистраци кæнын",
        "userloginnocreate": "Бахизын",
        "logout": "Рахизын",
        "minlength1": "Файлы номы хъуамæ æппынкъаддæр иу дамгъæ уа.",
        "badfilename": "Файлы ном ивд æрцыд {{grammar:allative|«$1»}}.",
        "savefile": "Файл бавæрын",
-       "uploadedimage": "бавгæдта \"[[$1]]\"",
        "uploadvirus": "Файлы ис вирус! \nЛæмбынæг: $1",
        "watchthisupload": "Ацы файлмæ цæст æрдарын",
        "upload-success-subj": "Æвгæд æрцыд",
        "watchthispage": "Цæст дарын ацы фарсмæ",
        "unwatch": "Нал дарын цæст",
        "watchlist-details": "{{PLURAL:$1|$1 фарсмæ|$1 фарсмæ}} дæ цæст дарыс, тæрхоны фæрстæ нæ нымайгæйæ.",
+       "wlnote": "Дæлæ афæстаг '''$2 сахаты дæргъы''' цы $1 {{PLURAL:$1|ивддзинад|ивддзинады}} æрцыди.",
        "wlshowlast": "Фæстæг $1 сахаты, $2 боны дæргъы; $3.",
        "watchlist-options": "Цæстдард рæгъы фадæттæ",
        "watching": "Цæстдард фæрсты номхыгъдмæ афтауын...",
index ec41ac6..9822644 100644 (file)
        "permalink": "ਪੱਕੀ ਲਿੰਕ",
        "print": "ਛਾਪੋ",
        "view": "ਵੇਖੋ",
+       "view-foreign": "$1 ਉੱਤੇ ਵੇਖੋ",
        "edit": "ਸੋਧੋ",
+       "edit-local": "ਲੋਕਲ ਵੇਰਵਾ ਸੋਧੋ",
        "create": "ਬਣਾਓ",
        "editthispage": "ਇਹ ਸਫ਼ਾ ਸੋਧੋ",
        "create-this-page": "ਇਹ ਸਫ਼ਾ ਬਣਾਓ",
        "hidetoc": "ਓਹਲੇ",
        "collapsible-collapse": "ਸਮੇਟੋ",
        "collapsible-expand": "ਫੈਲਾਓ",
+       "confirmable-yes": "ਹਾਂ",
+       "confirmable-no": "ਨਹੀਂ",
        "thisisdeleted": "$1 ਵੇਖੋ ਜਾਂ ਮੁੜ ਸਟੋਰ ਕਰੋ",
        "viewdeleted": "$1 ਵੇਖਣੀਆਂ ਹਨ?",
        "restorelink": "{{PLURAL:$1|ਇਕ ਮਿਟਾਈ ਹੋਈ ਸੋਧ|$1 ਮਿਟਾਈਆਂ ਹੋਈਆਂ ਸੋਧਾਂ}}",
        "edit-gone-missing": "ਇਹ ਸਫ਼ਾ ਅੱਪਡੇਟ ਨਹੀਂ ਹੋ ਸਕਿਆ।\nਜਾਪਦਾ ਹੈ ਕਿ ਇਹ ਹਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।",
        "edit-conflict": "ਸੋਧ ਤਕਰਾਰ",
        "edit-no-change": "ਤੁਹਾਡੀ ਸੋਧ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ ਕਿਉਂਕਿ ਲਿਖਤ ਵਿਚ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਕੀਤੀ ਗਈ।",
+       "postedit-confirmation-created": "ਸਫ਼ਾ ਬਣਾਇਆ ਗਿਆ।",
+       "postedit-confirmation-restored": "ਸਫ਼ੇ ਨੂੰ ਮੁੜ-ਸਟੋਰ ਕੀਤਾ ਗਿਆ।",
        "postedit-confirmation-saved": "ਤੁਹਾਡੀ ਸੋਧ ਸਾਂਭੀ ਗਈ ਹੈ।",
        "edit-already-exists": "ਨਵਾਂ ਸਫ਼ਾ ਨਹੀਂ ਬਣਾਇਆ ਜਾ ਸਕਿਆ।\nਇਹ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।",
        "defaultmessagetext": "ਮੂਲ ਸੰਦੇਸ਼ ਲਿਖਤ",
        "searchprofile-advanced-tooltip": "ਆਪਣੀਆਂ ਬਣਾਈਆਂ ਨਾਂ-ਥਾਂਵਾਂ ਵਿੱਚ ਖੋਜੋ",
        "search-result-size": "$1 ({{PLURAL:$2|1 ਸ਼ਬਦ|$2 ਸ਼ਬਦ}})",
        "search-result-category-size": "{{PLURAL:$1|1 ਮੈਂਬਰ|$1 ਮੈਂਬਰ}} ({{PLURAL:$2|1 ਉਪਸ਼੍ਰੇਣੀ|$2 ਉਪਸ਼੍ਰੇਣੀਆਂ}}, {{PLURAL:$3|1 ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}})",
-       "search-result-score": "ਸਹੀ: $1%",
        "search-redirect": "($1 ਰੀਡਿਰੈਕਟ)",
        "search-section": "(ਹਿੱਸਾ $1)",
        "search-suggest": "ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ ਸੀ: $1",
        "rcnotefrom": "'''$2''' ਤੱਕ ('''$1''' ਤੱਕ ਦਿੱਸਦੇ) ਬਦਲਾਵ ਹੇਠ ਦਿੱਤੀਆਂ ਹਨ।",
        "rclistfrom": "$3 $2 ਤੋਂ ਸ਼ੁਰੂ ਕਰਕੇ ਨਵੀਆਂ ਸੋਧਾਂ ਵਖਾਓ",
        "rcshowhideminor": "ਛੋਟੀਆਂ ਤਬਦੀਲੀਆਂ $1",
+       "rcshowhideminor-show": "ਵੇਖੋ",
+       "rcshowhideminor-hide": "ਓਹਲੇ",
        "rcshowhidebots": "$1 ਬੌਟ",
+       "rcshowhidebots-show": "ਵੇਖੋ",
+       "rcshowhidebots-hide": "ਓਹਲੇ",
        "rcshowhideliu": "$1 ਦਾਖ਼ਲ ਹੋਏ ਵਰਤੋਂਕਾਰ",
+       "rcshowhideliu-show": "ਵੇਖੋ",
+       "rcshowhideliu-hide": "ਓਹਲੇ",
        "rcshowhideanons": "$1 ਗੁਮਨਾਮ ਵਰਤੋਂਕਾਰ",
+       "rcshowhideanons-show": "ਵੇਖੋ",
+       "rcshowhideanons-hide": "ਓਹਲੇ",
        "rcshowhidepatr": "ਜਾਂਚੀਆਂ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ $1",
+       "rcshowhidepatr-show": "ਵੇਖੋ",
+       "rcshowhidepatr-hide": "ਓਹਲੇ",
        "rcshowhidemine": "ਮੇਰੀਆਂ ਤਬਦੀਲੀਆਂ  $1",
+       "rcshowhidemine-show": "ਵੇਖੋ",
+       "rcshowhidemine-hide": "ਓਹਲੇ",
        "rclinks": "ਪਿਛਲੇ $2 ਦਿਨਾਂ ਵਿੱਚ ਹੋਈਆਂ $1 ਤਬਦੀਲੀਆਂ ਵਖਾਓ<br /> $3",
        "diff": "ਫ਼ਰਕ",
        "hist": "ਅਤੀਤ",
        "uploadwarning": "ਅੱਪਲੋਡ ਚਿਤਾਵਨੀ",
        "uploadwarning-text": "ਕਿਰਪਾ ਕਰਕੇ ਹੇਠ ਦਿੱਤਾ ਫ਼ਾਈਲ ਵੇਰਵਾ ਬਦਲੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।",
        "savefile": "ਫ਼ਾਈਲ ਸਾਂਭੋ",
-       "uploadedimage": "\"[[$1]]\" ਅੱਪਲੋਡ ਕੀਤੀ",
-       "overwroteimage": "\"[[$1]]\" ਦਾ ਨਵਾਂ ਰੂਪ ਅੱਪਲੋਡ ਕਰੋ",
        "uploaddisabled": "ਅੱਪਲੋਡ ਆਯੋਗ ਹੈ",
        "copyuploaddisabled": "URL ਰਾਹੀਂ ਅੱਪਲੋਡ ਰੋਕੇ ਹੋਏ ਹਨ।",
        "uploaddisabledtext": "ਫ਼ਾਈਲਾਂ ਦੇ ਅੱਪਲੋਡ ਰੋਕੇ ਹੋਏ ਹਨ।",
        "nolicense": "ਕੁਝ ਵੀ ਚੁਣਿਆ",
        "license-nopreview": "(ਝਲਕ ਉਪਲੱਬਧ ਨਹੀਂ)",
        "upload_source_file": " (ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਉੱਤੇ ਇੱਕ ਫਾਇਲ)",
+       "listfiles-delete": "ਹਟਾਓ",
        "listfiles_search_for": "ਇਸ ਮੀਡੀਆ ਨਾਂ ਨੂੰ ਖੋਜੋ:",
        "imgfile": "ਫ਼ਾਈਲ",
        "listfiles": "ਫ਼ਾਈਲਾਂ ਦੀ ਸੂਚੀ",
        "listfiles_size": "ਆਕਾਰ",
        "listfiles_description": "ਵੇਰਵਾ",
        "listfiles_count": "ਵਰਜਨ",
+       "listfiles-latestversion": "ਮੌਜੂਦਾ ਵਰਜਨ",
        "listfiles-latestversion-yes": "ਹਾਂ",
        "listfiles-latestversion-no": "ਨਹੀਂ",
        "file-anchor-link": "ਫ਼ਾਈਲ",
        "shortpages": "ਛੋਟੇ ਸਫ਼ੇ",
        "longpages": "ਲੰਮੇ ਸਫ਼ੇ",
        "protectedpages": "ਸੁਰੱਖਿਅਤ ਸਫ਼ੇ",
+       "protectedpages-page": "ਸਫ਼ਾ",
+       "protectedpages-expiry": "ਮਿਆਦ",
+       "protectedpages-reason": "ਕਾਰਨ",
+       "protectedpages-unknown-timestamp": "ਅਣਜਾਣ",
+       "protectedpages-unknown-performer": "ਅਣਜਾਣ ਯੂਜ਼ਰ",
        "protectedtitles": "ਸੁਰੱਖਿਅਤ ਸਿਰਲੇਖ",
        "listusers": "ਯੂਜ਼ਰ ਲਿਸਟ",
        "listusers-editsonly": "ਸਿਰਫ਼ ਸੋਧਾਂ ਵਾਲੇ ਵਰਤੋਂਕਾਰ ਵਿਖਾਓ",
        "listgrouprights-removegroup-all": "ਸਾਰੇ ਸਮੂਹ ਹਟਾਓ",
        "listgrouprights-addgroup-self-all": "ਆਪਣੇ ਖਾਤੇ ਵਿਚ ਸਾਰੇ ਸਮੂਹ ਜੋੜੋ",
        "listgrouprights-removegroup-self-all": "ਆਪਣੇ ਖਾਤੇ ਤੋਂ ਸਾਰੇ ਸਮੂਹ ਹਟਾਓ",
+       "trackingcategories-nodesc": "ਕੋਈ  ਵੇਰਵਾ ਉਪਲੱਬਧ ਨਹੀਂ।",
        "mailnologin": "ਭੇਜਣ ਲਈ ਕੋਈ ਪਤਾ ਨਹੀਂ",
        "mailnologintext": "ਦੂਜੇ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਈ-ਮੇਲ ਭੇਜਣ ਲਈ ਤੁਹਾਨੂੰ [[Special:UserLogin|ਦਾਖ਼ਲ]] ਹੋਣਾ ਪਵੇਗਾ ਅਤੇ ਆਪਣੀਆਂ [[Special:Preferences|ਪਸੰਦਾਂ]] ਵਿਚ ਇੱਕ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਦੇਣਾ ਪਵੇਗਾ।",
        "emailuser": "ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ",
        "notanarticle": "ਕੋਈ ਸਮੱਗਰੀ ਸਫ਼ਾ ਨਹੀਂ ਹੈ",
        "notvisiblerev": "ਇੱਕ ਵੱਖਰੇ ਮੈਂਬਰ ਦੀ ਬਣਾਈ ਆਖ਼ਰੀ ਰੀਵਿਜ਼ਨ ਮਿਟਾਈ ਜਾ ਚੁੱਕੀ ਹੈ",
        "watchlist-details": "ਗੱਲ-ਬਾਤ ਸਫ਼ੇ ਨਾ ਗਿਣਦੇ ਹੋਏ, ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਸੂਚੀ ਵਿਚ{{PLURAL:$1|$1 ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ ਹਨ}}।",
+       "wlnote": "$3, $4 ਮੁਤਾਬਕ ਆਖ਼ਰੀ {{PLURAL:$2|ਘੰਟੇ|'''$2''' ਘੰਟਿਆਂ}} ਵਿਚ {{PLURAL:\n$1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ}}, ਹੇਠਾਂ ਵੇਖੋ।",
        "wlshowlast": "ਪਿਛਲੇ $1 ਘੰਟੇ $2 ਦਿਨ $3 ਵਖਾਓ",
        "watchlist-options": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ਦੀਆਂ ਚੋਣਾਂ",
        "watching": "ਨਿਗ੍ਹਾ (ਵਾਚ) ਰੱਖੀ ਜਾ ਰਹੀ ਹੈ...",
        "allmessages-prefix": "ਇਸ ਅਗੇਤਰ ਨਾਲ਼ ਛਾਣੋ:",
        "allmessages-language": "ਭਾਸ਼ਾ:",
        "allmessages-filter-submit": "ਜਾਓ",
+       "allmessages-filter-translate": "ਤਰਜਮਾ ਕਰੋ",
        "thumbnail-more": "ਵਧਾਓ",
        "filemissing": "ਫ਼ਾਈਲ ਗੁੰਮ ਹੈ",
        "thumbnail_error": "ਨਮੂਨਾ ਬਣਾਉਣ ਵਿੱਚ ਗਲਤੀ ਹੋਈ ਹੈ: $1",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|ਵਰਤੋਂਕਾਰ|ਵਰਤੋਂਕਾਰਾਂ}} $1",
        "creditspage": "ਸਫ਼ੇ ਬਾਬਤ ਕਰਜ਼",
        "spamprotectiontitle": "Spam ਸੁਰੱਖਿਆ ਫਿਲਟਰ",
+       "pageinfo-header-basic": "ਮੁੱਢਲੀ ਜਾਣਕਾਰੀ",
        "pageinfo-header-edits": "ਸੋਧਾਂ ਦਾ ਅਤੀਤ",
        "pageinfo-header-restrictions": "ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ",
+       "pageinfo-header-properties": "ਸਫ਼ਾ ਵਿਸ਼ੇਸ਼ਤਾ",
        "pageinfo-length": "ਸਫ਼ੇ ਦੀ ਲੰਬਾਈ (ਬਾਈਟਾਂ ਵਿਚ)",
        "pageinfo-article-id": "ਸਫ਼ੇ ਦੀ ਸ਼ਨਾਖ਼ਤ",
        "pageinfo-language": "ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਦੀ ਭਾਸ਼ਾ",
        "file-nohires": "ਇਸ ਤੋਂ ਵੱਡੀ ਤਸਵੀਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।",
        "svg-long-desc": "SVG ਫ਼ਾਈਲ, ਆਮ ਤੌਰ ’ਤੇ $1 × $2 ਪਿਕਸਲ, ਫ਼ਾਈਲ ਦਾ ਅਕਾਰ: $3",
        "show-big-image": "ਅਸਲ ਫਾਈਲ",
+       "show-big-image-size": "$1 × $2 ਪਿਕਸਲ",
        "newimages": "ਨਵੀਆਂ ਫ਼ਾਈਲਾਂ ਦੀ ਗੈਲਰੀ",
+       "newimages-legend": "ਫਿਲਟਰ",
        "noimages": "ਵੇਖਣ ਲਈ ਕੁਝ ਨਹੀਂ",
        "ilsubmit": "ਖੋਜ",
        "bydate": "ਮਿਤੀ ਨਾਲ",
        "exif-unknowndate": "ਅਣਪਛਾਤੀ ਮਿਤੀ",
        "exif-orientation-1": "ਸਧਾਰਨ",
        "exif-orientation-3": "੧੮੦° ਘੁਮਾਇਆ ਗਿਆ",
+       "exif-orientation-6": "90° ਖੱਬੇ ਦਾਅ ਘੁੰਮਾਇਆ",
+       "exif-orientation-7": "90° ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਇਆ ਅਤੇ ਖੜ੍ਹਵੇਂ ਰੂਪ ਵਿੱਚ ਪਲਟਿਆ",
+       "exif-orientation-8": "90° ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਇਆ",
        "exif-componentsconfiguration-0": "ਮੌਜੂਦ ਨਹੀਂ ਹੈ",
        "exif-exposureprogram-0": "ਪਰਿਭਾਸ਼ਤ ਨਹੀਂ",
        "exif-exposureprogram-1": "ਦਸਤੀ",
        "confirm-watch-top": "ਇਸ ਸਫ਼ੇ ਨੂੰ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਜੋੜਨਾ ਹੈ?",
        "confirm-unwatch-button": "ਠੀਕ ਹੈ",
        "confirm-unwatch-top": "ਇਸ ਸਫ਼ੇ ਨੂੰ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਤੋਂ ਹਟਾਉਣਾ ਹੈ?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← ਪਿਛਲਾ ਸਫ਼ਾ",
        "imgmultipagenext": "ਅਗਲਾ ਸਫ਼ਾ →",
        "imgmultigo": "ਜਾਓ!",
        "imgmultigoto": "$1 ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ",
+       "img-lang-default": "(ਮੂਲ ਭਾਸ਼ਾ)",
+       "img-lang-go": "ਜਾਓ",
        "ascending_abbrev": "ਵਧਦਾ",
        "descending_abbrev": "ਘਟਦਾ",
        "table_pager_next": "ਅਗਲਾ ਸਫ਼ਾ",
        "version-hooks": "ਹੁੱਕਾਂ",
        "version-hook-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-credits-title": "$1 ਲਈ ਮਾਣ",
        "version-poweredby-others": "ਹੋਰ",
+       "version-poweredby-translators": "translatewiki.net ਅਨੁਵਾਦਕ",
        "version-software": "ਇਨਸਟਾਲ ਕੀਤਾ ਸਾਫ਼ਟਵੇਅਰ",
        "version-software-product": "ਉਤਪਾਦ",
        "version-software-version": "ਵਰਜਨ",
        "fileduplicatesearch-submit": "ਖੋਜ",
        "fileduplicatesearch-noresults": "\"$1\" ਨਾਂ ਦੀ ਕੋਈ ਫ਼ਾਈਲ ਨਹੀਂ ਲੱਭੀ।",
        "specialpages": "ਖ਼ਾਸ ਸਫ਼ੇ",
+       "specialpages-note-top": "ਸੰਕੇਤ",
        "specialpages-group-maintenance": "ਪ੍ਰਬੰਧਕੀ ਰਪਟਾਂ",
        "specialpages-group-other": "ਹੋਰ ਖ਼ਾਸ ਸਫ਼ੇ",
        "specialpages-group-login": "ਲਾਗਇਨ / ਖਾਤਾ ਬਣਾਓ",
        "tags-title": "ਟੈਗ",
        "tags-tag": "ਟੈਗ ਦਾ ਨਾਮ",
        "tags-description-header": "ਅਰਥ ਦਾ ਪੂਰਾ ਬਿਓਰਾ",
+       "tags-active-header": "ਸਰਗਰਮ?",
        "tags-hitcount-header": "ਟੈਗ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ",
+       "tags-active-yes": "ਹਾਂ",
+       "tags-active-no": "ਨਹੀਂ",
        "tags-edit": "ਸੋਧੋ",
        "tags-hitcount": "$1 {{PLURAL:$1|ਤਬਦੀਲੀ|ਤਬਦੀਲੀਆਂ}}",
        "comparepages": "ਸਫ਼ੇ ਮਿਲਾਓ",
        "htmlform-no": "ਨਹੀਂ",
        "htmlform-yes": "ਹਾਂ",
        "htmlform-chosen-placeholder": "ਕੋਈ ਚੋਣ ਚੁਣੋ",
+       "htmlform-cloner-create": "ਹੋਰ ਜੋੜੋ",
+       "htmlform-cloner-delete": "ਹਟਾਓ",
        "logentry-delete-delete": "$1 ਨੇ ਸਫ਼ਾ $3 ਮਿਟਾਇਆ",
        "revdelete-content-hid": "ਸਮੱਗਰੀ ਲੁਕਾਈ ਹੋਈ",
        "revdelete-summary-hid": "ਸੋਧ ਸਾਰ ਲੁਕਾਈ ਹੋਈ",
        "duration-centuries": "$1 {{PLURAL:$1|ਸਦੀ|ਸਦੀਆਂ}}",
        "duration-millennia": "$1 {{PLURAL:$1|ਸਾਹਸ਼ਤਾਬਦੀ|ਸਾਹਸ਼ਤਾਬਦੀਆਂ}}",
        "rotate-comment": "ਤਸਵੀਰ ਨੂੰ ਘੜੀ ਦੇ ਰੁਖ ਵਿਚ $1 {{PLURAL:$1|ਡਿਗਰੀ|ਡਿਗਰੀਆਂ}} ਨਾਲ਼ ਘੁਮਾਇਆ ਗਿਆ",
-       "expand_templates_preview": "ਝਲਕ"
+       "expand_templates_ok": "ਠੀਕ ਹੈ",
+       "expand_templates_remove_comments": "ਟਿੱਪਣੀਆਂ ਹਟਾਓ",
+       "expand_templates_preview": "ਝਲਕ",
+       "pagelang-name": "ਸਫ਼ਾ",
+       "pagelang-language": "ਭਾਸ਼ਾ",
+       "pagelang-use-default": "ਮੂਲ ਭਾਸ਼ਾ ਵਰਤੋਂ",
+       "pagelang-select-lang": "ਭਾਸ਼ਾ ਚੁਣੋ"
 }
index 3dd109b..010179a 100644 (file)
        "talkpagelinktext": "Pisasabian",
        "specialpage": "Bulung a Makabukud",
        "personaltools": "Sariling kasangkapan",
-       "postcomment": "Magpaskil kang komentu o puna",
        "articlepage": "Lawen me ing kalamnan ning bulung",
        "talk": "Pamisabi-sabi",
        "views": "Pamaglawe",
        "externaldberror": "Mapalyaring mika pamagkamali king external authentication (pamagpatutung panlual) ning database, o ala kang paintulut a i-update ya ing kekang account a panlual (external account).",
        "login": "Mag log in",
        "nav-login-createaccount": "Mag-login / maglalang account",
-       "loginprompt": "Kailangan mo reng cookie a makasalangi (enabled) ba kang makapag log in king {{SITENAME}}.",
        "userlogin": "Mag-login / maglalang account",
        "logout": "Mag-log out",
        "userlogout": "Mag logout",
        "searchprofile-images-tooltip": "Manintun makasimpan",
        "searchprofile-everything-tooltip": "Manintun karing eganaganang laman (kayabe no reng bulung pamisabi-sabi)",
        "search-result-size": "$1 ({{PLURAL:$2|1 a kataya|$2 kataya}})",
-       "search-result-score": "Kaugnayan (relevance): $1%",
        "search-redirect": "(pamanalis direksiun $1)",
        "search-section": "(seksion $1)",
        "search-suggest": "Ing buri mung sabian: $1",
        "fileexists-shared-forbidden": "Atin nang simpan (file) a maki lagyung anti kaniti king abe-abeng simpanan (shared file repository);\nmibalik ka at ilulan (upload) me king lalam ning bayung lagyu. [[File:$1|thumb|center|$1]]",
        "uploadwarning": "Babala king pamaglulan",
        "savefile": "I-save ya ing simpan (file)",
-       "uploadedimage": "milulan ya ing \"[[$1]]\"",
-       "overwroteimage": "milulan ya ing bayung bersion ning \"[[$1]]\"",
        "uploaddisabled": "Makapatda ing pamag-upload",
        "uploaddisabledtext": "Makapatda ing pamag-upload king {{SITENAME}}.",
        "uploadscripted": "Atin yang HTML o script code ing simpan a ini, at maliaring magkamali ya ing web browser king pamamasa kaniti.",
        "watchlist-details": "{{PLURAL:$1|$1 bulung|$1 bulung}} king kekang watchlist, e la kayabe deng ''talk pages''.",
        "wlheader-enotif": "Makasalangi (enabled) ing pamipabalu kapamilatan ning e-mail.",
        "wlheader-showupdated": "'''Makapal''' la pangasulat deng bulung a miyalilan manibat aniang tauli mu lang pintalan.",
+       "wlnote": "{{PLURAL:$1|Ing makatuki ing tauling|Ding makatuki ring tauling '''$1''' miyalilan}} kilub {{PLURAL:$2|ning tauling metung a oras|ding tauling '''$2''' oras}}.",
        "wlshowlast": "Pakit la reng tauling $1 oras $2 aldo $3",
        "watchlist-options": "Deng maliaring gawan kareng listaan da reng babanten (''watchlist'')",
        "watching": "Babanten...",
index f780a0a..2c50096 100644 (file)
        "talkpagelinktext": "Dviser",
        "specialpage": "Pache éspéchiale",
        "personaltools": "Otis dech uzeu",
-       "postcomment": "Nouvèle sekchion",
        "articlepage": "Vir el pache ed ches étnus",
        "talk": "distchuter",
        "views": "Vues",
        "yourdomainname": "Vote donmène:",
        "login": "Intrer",
        "nav-login-createaccount": "Intrer / créer vote conpte",
-       "loginprompt": "I feut avoèr dés coukies pou pouvoèr intrer din {{SITENAME}}.",
        "userlogin": "Intrer / créer vote conpte",
        "logout": "Sortir",
        "userlogout": "Sortir",
        "upload": "Quértcher chés fichiés",
        "uploadlogpage": "Jornal éd chés quértchémints",
        "filedesc": "Résumè",
-       "uploadedimage": "\"[[$1]]\" quértchée",
        "license": "Licince",
        "license-header": "Licince",
        "listfiles": "Lisse des fichiés",
index 036d5c4..caf85e5 100644 (file)
        "filename": "Feilnaame",
        "badfilename": "Daer Feilnaame iss gennert warre nooch „$1“.",
        "savefile": "Feil beilege",
-       "uploadedimage": "hot „[[$1]]“ uffglaade",
-       "overwroteimage": "hot e neie Version vun „[[$1]]“ uffglaade",
        "uploaddisabled": "Ufflaade verbodde",
        "uploaddisabledtext": "Es Ufflaade vun Feils iss verbodde.",
        "watchthisupload": "Watsch des Blatt",
index c5b47ac..f60e1dc 100644 (file)
        "talkpagelinktext": "Dischbediere",
        "specialpage": "Schbezielli Said",
        "personaltools": "Persenlischs Wergzaisch",
-       "postcomment": "Naije Abschnidd",
        "articlepage": "Inhald õgugge",
        "talk": "Dischbediere",
        "views": "Uffruf",
        "remembermypassword": "Moi Kennword uffm Brausa merge (hegschdns fa $1 {{PLURAL:$1|Daach|Daach}})",
        "login": "Õmelde",
        "nav-login-createaccount": "Õmelde / Kondo õleesche",
-       "loginprompt": "Cookies mugschd fa {{SITENAME}} schun õhawe.",
        "userlogin": "Õmelde / Kondo õleesche",
        "userloginnocreate": "Oilogge",
        "logout": "Uffhere",
        "searchprofile-advanced-tooltip": "Gugg in õnnare Nõmensreum",
        "search-result-size": "$1 ({{PLURAL:$2|1 Word|$2 Wärda}})",
        "search-result-category-size": "{{PLURAL:$1|1 Said|$1 Saide}} ({{PLURAL:$2|1 Sachgrubb|$2 Sachgrubbe}}, {{PLURAL:$3|1 Dadai|$3 Dadaije}})",
-       "search-result-score": "Bdaidung: $1%",
        "search-redirect": "(Waidalaidung $1)",
        "search-section": "(Abschnidd $1)",
        "search-suggest": "Hoschd gemäänd: $1",
        "filedesc": "Iwwabligg",
        "fileuploadsummary": "Iwwabligg:",
        "savefile": "Dadai schbaischere",
-       "uploadedimage": "hodd „[[$1]]“ nuffglade",
        "lockmanager-notlocked": "„$1“ hod ned uffgmachd were kenne, s'isch ganed gschberd gwesd.",
        "lockmanager-fail-closelock": "Die gbscherd Dadai „$1“ hod ned gschlosse were kenne.",
        "lockmanager-fail-deletelock": "Die gbscherd Dadai „$1“ hod ned gleschd were kenne.",
index ffa0f38..582b330 100644 (file)
        "noindex-category-desc": "Ta strona nie jest indeksowana przez roboty, ponieważ ma wpisane magiczne słowo <code><nowiki>__NOINDEX__</nowiki></code> i znajduje się w przestrzeni nazw, w której ta flaga jest dozwolona.",
        "index-category-desc": "Na stronie znajduje się magiczne słowo <code><nowiki>__INDEX__</nowiki></code> (i strona znajduje się w przestrzeni nazw, w której jest ono dozwolone), więc jest indeksowana przez wyszukiwarki nawet wtedy, gdy normalnie by się to nie działo.",
        "post-expand-template-inclusion-category-desc": "Rozmiar tej strony jest większy niż <code>$wgMaxArticleSize</code> po rozszerzeniu wszystkich szablonów, więc część szablonów nie jest rozszerzonych.",
-       "post-expand-template-argument-category-desc": "Po rozwinięciu argumentu szablonu (coś w potrójnych nawiasach, np. <code>{{{Foo}}}</code>) długość strony przekracza <code>$wgMaxArticleSize</code>.",
+       "post-expand-template-argument-category-desc": "Długość strony przekracza <code>$wgMaxArticleSize</code> po rozwinięciu argumentu szablonu (coś w potrójnych nawiasach, np. <code>{{{Foo}}}</code>).",
        "expensive-parserfunction-category-desc": "Na stronie używanych jest zbyt wiele wymagających funkcji parsera (takich jak <code>#ifexist</code>). Więcej informacji na stronie [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Strona zawiera nieprawidłowe odwołania do plików (odwołania do nieistniejących plików).",
        "hidden-category-category-desc": "To jest kategoria z <code><nowiki>__HIDDENCAT__</nowiki></code>, co zapobiega wyświetlaniu jej w sekcji z kategoriami na stronie.",
        "delete-edit-reasonlist": "Edytuj listę przyczyn usunięcia",
        "delete-toobig": "Ta strona ma bardzo długą historię edycji – ponad $1 {{PLURAL:$1|zmianę|zmiany|zmian}}.<br />\nUsuwanie jej zostało ograniczone ze względu na możliwość zakłócenia pracy {{GRAMMAR:D.lp|{{SITENAME}}}}.",
        "delete-warning-toobig": "Ta strona ma bardzo długą historię edycji – ponad $1 {{PLURAL:$1|zmianę|zmiany|zmian}}.<br />\nBądź ostrożny, ponieważ usunięcie jej może spowodować zakłócenia w pracy {{GRAMMAR:D.lp|{{SITENAME}}}}.",
+       "delete-cantedit": "Nie możesz usunąć tej strony, ponieważ nie masz uprawnienia do jej edycji.",
        "deleting-backlinks-warning": "''' Uwaga:''' Do strony, którą masz zamiar usunąć, odwołują się [[Special:WhatLinksHere/{{FULLPAGENAME}}|inne strony]].",
        "rollback": "Cofnij edycję",
        "rollback_short": "Cofnij",
index 3029c96..edf2a8e 100644 (file)
        "talkpagelinktext": "گل بات",
        "specialpage": "خاص صفحہ",
        "personaltools": "ذاتی اوزار",
-       "postcomment": "نویں ونڈ",
        "articlepage": "مضمون آلا صفحہ",
        "talk": "گل بات",
        "views": "وکھالے",
        "externaldberror": "ڈیٹابیس چ توانوں پہچاننے چ کوئی مسئلہ ہویا اے یا فیر تسی اپنا بارلا کھاتا نئیں بدل سکدے۔",
        "login": "اندر آؤ جی",
        "nav-login-createaccount": "اندر آؤ / کھاتہ کھولو",
-       "loginprompt": "اندر آنے آستے تواڈیاں کوکیز آن ہونیاں چائیدیاں نے {{SITENAME}}.",
        "userlogin": "اندر آؤ / کھاتہ کھولو",
        "userloginnocreate": "اندر آؤ جی",
        "logout": "لاگ توں باہر",
        "searchprofile-advanced-tooltip": "کسٹم ناواں چ لبو",
        "search-result-size": "$1 ({{PLURAL:$2|1 لفظ|$2 الفاظ}})",
        "search-result-category-size": "{{PLURAL:$1|1 سنگی|$1 سنگی}} ({{PLURAL:$2|1 نکیاں گٹھاں|$2 نکیاں گٹھاں}}, {{PLURAL:$3|1 فائل|$3 فائلاں}})",
-       "search-result-score": "مہاندرا:  $1%",
        "search-redirect": "($1 ریڈائریکٹ)",
        "search-section": "($1 ٹوٹا)",
        "search-suggest": "تسی $1 دی گل تے نئیں کر رۓ:",
        "uploadwarning": "فائل چڑانے توں خبردار",
        "uploadwarning-text": "تھلے فائل بارے دس بدلو تے فیر کوشش کرو۔",
        "savefile": "فائل بچاؤ",
-       "uploadedimage": "چڑھائی گئی\"[[$1]]\"",
-       "overwroteimage": "\"[[$1]]\" دا اک نواں ورین چڑھاؤ",
        "uploaddisabled": "فائل چڑانا بند اے",
        "copyuploaddisabled": "یو آر این لے چڑھانا نکارہ کیتا۔",
        "uploaddisabledtext": "فائل چڑانے چ رکاوٹ اے۔",
        "watchlist-details": "{{PLURAL:$1|$1 صفحہ|$1 صفحہ}} تواڈی اکھ تھلے گلاں باتاں شامل نہیں۔",
        "wlheader-enotif": "ای-میل نوٹیفیکیشن قابل",
        "wlheader-showupdated": " صفے جیہڑے بدلے کۓ تھواڈے آخری وار آن مکرون  اونان نوں موٹا کرکے دسیا گیا اے۔",
+       "wlnote": "تھلے {{PLURAL:$1|آخری تبدیلی|آخری تبدیلیاں '''1$''' }} آخر تے {{PLURAL:$2|کینٹہ|'''2$''' کینٹے}} 3$، 4$.",
        "wlshowlast": "آخری $1 گھنٹے $2 دن $3 وکھاؤ",
        "watchlist-options": "نظر تھلے رکھن دیاں راہواں",
        "watching": "نظر تھلے۔۔۔۔",
        "duplicate-defaultsort": "'''خبردار:''' ڈیفالٹ چابی \"$2\" پہلی ڈیفالٹ چابی \"$1\" دے اتے لگ گئی اے۔",
        "version": "ورژن",
        "version-extensions": "انسٹالڈ کیتیاں گیاں ایکسٹنشن",
+       "version-skins": "کھل",
        "version-specialpages": "خاص صفے",
        "version-parserhooks": "پارسر ہکز",
        "version-variables": "ویریایبلز",
        "version-antispam": "سپام بچاؤ",
-       "version-skins": "کھل",
        "version-other": "دوجے",
        "version-mediahandlers": "میڈیا ہینڈلرز",
        "version-hooks": "ہکز",
index eb0d128..b51b871 100644 (file)
        "talkpagelinktext": "Καλάτσεμαν",
        "specialpage": "Ειδικόν σελίδαν",
        "personaltools": "Προσωπικά εργαλεία",
-       "postcomment": "Νέον κομμάτ'",
        "articlepage": "Σελίδα",
        "talk": "Καλάτσεμαν",
        "views": "Τερέματα",
        "yourdomainname": "Το domain εσούν:",
        "login": "Εμπάτε",
        "nav-login-createaccount": "Εμπάτεν / ποισέστεν λογαρίαν",
-       "loginprompt": "Πρέπ' ν' άφτετε τα cookies για εμπείτε σο {{SITENAME}}.",
        "userlogin": "Εμπάτεν / ποισέστεν λογαρίαν",
        "userloginnocreate": "Εμπάτεν",
        "logout": "οξουκά",
        "badfilename": "Τόνεμαν ταρχείου ελλάγεν κιεγέντον \"$1\".",
        "filetype-missing": "Τ' αρχείον τιδέν 'κ έχ' κατάληξην (άμον \".jpg\").",
        "savefile": "Αποθήκεψον τ' αρχείον",
-       "uploadedimage": "Εγέντον το φόρτωμαν τη \"[[$1]]\"",
-       "overwroteimage": "Εφορτώθεν καινούρεον μορφή τη \"[[$1]]\"",
        "watchthisupload": "Ωρίαγμαν τη αρχείου",
        "upload-file-error": "Σφάλμαν απές μερέαν",
        "upload-misc-error": "Αναγνώριμον λάθος φορτωματί",
index 258bdc9..f4f403e 100644 (file)
        "talkpagelinktext": "Diskusiōni",
        "specialpage": "Speciālin pāusan",
        "personaltools": "Persōniskas pagaptis",
-       "postcomment": "Naunā sekciōni",
        "articlepage": "Wīdais ēnturas pāusan",
        "talk": "Diskusiōni",
        "views": "Pawīda",
        "externaldberror": "Tikka izwinaīnas autentikāntin dātanbazin blānda, anga ni assei enwarīntan kāi etnaunīnlai twajjan izwinaīnan rekkenan.",
        "login": "Enjaīs",
        "nav-login-createaccount": "Enjaīs / teīkeis rekkenan",
-       "loginprompt": "Tu turri turītun <i>cookies</i> enklaūtan, kāi enēilai en {{SITENAME}}.",
        "userlogin": "Enjaīs / teīkeis rekkenan",
        "userloginnocreate": "Enjaīs",
        "logout": "Izjaīs",
        "searchprofile-everything-tooltip": "Laukīs en pastippai ēnturan (dīgi en diskusiōnis pāusamans)",
        "searchprofile-advanced-tooltip": "Laukīs en etrinktammans tītelin plattibins",
        "search-result-size": "$1 ({{PLURAL:$2|1 wīrds|$2 wīrdai}})",
-       "search-result-score": "Ebtikewīngisku $1%",
        "search-redirect": "(prawessenis $1)",
        "search-section": "(sekciōni $1)",
        "search-suggest": "Mīriwuns(si) tū ezze: $1",
        "uploadwarning": "Ēmpirsergīsenis ezze enkraūsnan",
        "uploadwarning-text": "Madli kitawīdinais zūrbukes ebpeisāsenis be bandais etkūmps",
        "savefile": "Enpeisāis zūrbrukin",
-       "uploadedimage": "ast enkraūwuns(si) \"[[$1]]\"",
-       "overwroteimage": "ast enkraūwuns(si) nāunan wersiōnin stesse \"[[$1]]\"",
        "uploaddisabled": "Zūrbrukin enkrausnā izklaūtan",
        "uploaddisabledtext": "Zūrbrukin enkrausnā pastāi izklaūtan.",
        "php-uploaddisabledtext": "Zūrbrukin enkrausnā ast drēuditan en PHP.\nIzbandais ensadīnsenin „file_uploads”.",
        "watchlist-details": "Ast {{PLURAL:$1|$1 pāusan|$1 pāusai}} en twajjai listin stēisan nadirītan, ni gīrbawintei diskusiōnis pāusans.",
        "wlheader-enotif": "E-mail pawakīsenei ast enklaūtan.",
        "wlheader-showupdated": "Pastāi '''pastarīntan''' pāusai,  kawīdai bēi kitawīdintan ezze Twajjai panzdauman tenēisan kāimalukisnan..",
+       "wlnote": "Zemmais pawaidinnā di {{PLURAL:$1|panzdauman kitawīdinsnan|panzdaumans '''$1''' kitawīdinsnans}} en {{PLURAL:$2|panzdauman stundin|'''$2''' panzdaumans stundins}}.",
        "wlshowlast": "Waidinnais panzdaumans $1 stūndins, $2 dēinans ($3)",
        "watchlist-options": "Nadirītan listis mazīngiskwas",
        "watching": "As nadirēi...",
index 7ca0e55..dc00401 100644 (file)
        "talkpagelinktext": "خبرې اترې",
        "specialpage": "ځانگړې پاڼه",
        "personaltools": "شخصي اوزار",
-       "postcomment": "نوې برخه",
        "articlepage": "د مخ مېنځپانگه ښکاره کول",
        "talk": "خبرې اترې",
        "views": "کتنې",
        "password-change-forbidden": "تاسې په دې ويکي باندې خپل پټنوم نه شی بدلولی.",
        "login": "ننوتل",
        "nav-login-createaccount": "ننوتل / گڼون جوړول",
-       "loginprompt": "ددې لپاره چې {{SITENAME}} کې ننوځۍ نو بايد ستاسې د کمپيوټر کوکيز چارن وي.",
        "userlogin": "ننوتل / گڼون جوړول",
        "userloginnocreate": "ننوتل",
        "logout": "وتل",
        "searchprofile-advanced-tooltip": "د خپل خوښې په نوم-تشيالونو کې پلټل",
        "search-result-size": "$1 ({{PLURAL:$2|1 ويی|$2 وييونه}})",
        "search-result-category-size": "{{PLURAL:$1|1 غړی|$1 غړي}} ({{PLURAL:$2|1 څېرمه وېشنيزه|$2 څېرمه وېشنيزې}}، {{PLURAL:$3|1 دوتنه|$3 دوتنې}})",
-       "search-result-score": "اړوندتوب: $1%",
        "search-redirect": "(د $1 مخ ګرځونه)",
        "search-section": "(برخه $1)",
        "search-suggest": "آيا همدا مو موخه وه: $1",
        "file-exists-duplicate": "همدا دوتنه د {{PLURAL:$1|لاندينۍ دوتنې|لاندينيو دوتنو}} غبرگه لمېسه ده:",
        "uploadwarning": "د پورته کولو گواښ",
        "savefile": "دوتنه خوندي کړه",
-       "uploadedimage": "\"[[$1]]\" پورته شوه",
        "uploaddisabled": "پورته کول ناچارن شوي",
        "uploaddisabledtext": "د دوتنې پورته کولو آسانتياوې ناچارن شوي.",
        "uploadvirus": "دا دوتنه ويروس لري! تفصيل: $1",
        "watchlist-details": "ستاسې کتنلړ کې {{PLURAL:$1|$1 مخ دی|$1 مخونه دي}}، د خبرو اترو مخونه مو بېل نه دي شمېرلي.",
        "wlheader-enotif": "برېښليک خبرونه چارنه شوې.",
        "wlheader-showupdated": "هغه مخونه چې ستاسې د کتلو نه وروسته بدلون موندلی په '''روڼ''' ليک په نښه شوي.",
+       "wlnote": "دلته لاندې {{PLURAL:$1|وروستی بدلون دی|وروستي '''$1''' بدلونونه دي}} چې په {{PLURAL:$2|تېر ساعت|تېرو '''$2''' ساعتونو}} کې تر $3 نېټې او $4 بجو پېښ شوي.",
        "wlshowlast": "وروستي $1 ساعتونه $2 ورځې $3 ښکاره کړه",
        "watchlist-options": "د کتنلړ خوښنې",
        "watching": "د کتلو په حال کې...",
        "duplicate-defaultsort": "'''گواښنه:'''د \"$2\" تلواليزه اوډون تڼۍ تر دې پخوا ټاکلې تلواليزه اوډون تڼۍ \"$1\" پر ځای چارنه کېږي.",
        "version": "بڼه",
        "version-extensions": "لگېدلي شاتاړي",
-       "version-specialpages": "ځانگړي مخونه",
        "version-skins": "پوښۍ",
+       "version-specialpages": "ځانگړي مخونه",
        "version-other": "بل",
        "version-hooks": "کونډۍ",
        "version-hook-name": "کونډۍ نوم",
index c81fa5b..57dad83 100644 (file)
        "sort-descending": "Ordenar por ordem descendente",
        "sort-ascending": "Ordenar por ordem ascendente",
        "nstab-main": "Página",
-       "nstab-user": "Página d{{GENDER:{{#titleparts:{{PAGENAME}}|1|1}}|o usuário|a usuária|e usuário(a)}}",
+       "nstab-user": "Página d{{GENDER:{{BASEPAGENAME}}|o usuário|a usuária|e usuário(a)}}",
        "nstab-media": "Página de mídia",
        "nstab-special": "Página especial",
        "nstab-project": "Página do projeto",
        "invalidtitle-knownnamespace": "Título inválido para o espaço nominal \"$2\" e texto \"$3\"",
        "invalidtitle-unknownnamespace": "Título inválido para o espaço nominal de número desconhecido ($1) e texto \"$2\"",
        "exception-nologin": "Não está autenticado",
-       "exception-nologin-text": "Por favor clique [[Special:Userlogin|log in]] para poder acessar esta página ou ação",
+       "exception-nologin-text": "Por favor clique $1 para poder acessar essa página ou ação.",
        "exception-nologin-text-manual": "Por favor clique $1 para poder acessar essa página ou ação.",
        "virus-badscanner": "Má configuração: antivírus desconhecido: ''$1''",
        "virus-scanfailed": "a verificação falhou (código $1)",
        "parser-template-recursion-depth-warning": "O limite de profundidade de recursividade de predefinição foi ultrapassado ($1)",
        "language-converter-depth-warning": "O limite de profundidade do conversor de línguas excedeu a ($1)",
        "node-count-exceeded-category": "Páginas em que o total de nós é excedido",
-       "node-count-exceeded-category-desc": "Uma categoria para páginas onde a contagem de nós é ultrapassada.",
+       "node-count-exceeded-category-desc": "A página excede a contagem de nós permitida.",
        "node-count-exceeded-warning": "A página excedeu o total de nós",
        "expansion-depth-exceeded-category": "Páginas em que a profundidade de expansão é excedida",
-       "expansion-depth-exceeded-category-desc": "Esta é uma categoria para as páginas onde a profundidade de expansão é ultrapassada.",
+       "expansion-depth-exceeded-category-desc": "A página excede a profundidade de expansão permitida.",
        "expansion-depth-exceeded-warning": "A página excedeu a profundidade de expansão",
        "parser-unstrip-loop-warning": "Foi detectado um ciclo infinito unstrip",
        "parser-unstrip-recursion-limit": "Limite de recursão do unstrip excedido ($1)",
        "trackingcategories-msg": "Categoria de monitoramento",
        "trackingcategories-desc": "Critérios de inclusão de categoria",
        "noindex-category-desc": "A página não é indexada por robôs, porque possui a palavra mágica <code><nowiki>__NOINDEX__</nowiki></code> e está em um namespace onde a flag é permitida.",
-       "post-expand-template-inclusion-category-desc": "Após expandir todos as predefinições, o tamanho da página é maior que o valor permitido na variável <code>$wgMaxArticleSize</code>, por isso algumas predefinições não foram expandidas.",
+       "post-expand-template-inclusion-category-desc": "O tamanho da página é superior a <code>$wgMaxArticleSize</code>, após a expansão de todas as predefinições, pelo que algumas predefinições não foram expandidas.",
        "trackingcategories-disabled": "A categoria está desabilitada",
        "mailnologin": "Nenhum endereço de envio",
        "mailnologintext": "Necessita de estar [[Special:UserLogin|autenticado]] e de possuir um endereço de e-mail válido nas suas [[Special:Preferences|preferências]] para poder enviar um e-mail a outros usuários.",
        "delete-edit-reasonlist": "Editar motivos de eliminação",
        "delete-toobig": "Esta página possui um longo histórico de edições, com mais de $1 {{PLURAL:$1|edição|edições}}.\nA eliminação de tais páginas foi restrita, a fim de se evitarem problemas acidentais em {{SITENAME}}.",
        "delete-warning-toobig": "Esta página possui um longo histórico de edições, com mais de $1 {{PLURAL:$1|edição|edições}}.\nEliminá-la poderá causar problemas na base de dados de {{SITENAME}};\nprossiga com cuidado.",
+       "delete-cantedit": "Você não pode deletar essa paginá por que você não tem permissão de edita-la",
        "deleting-backlinks-warning": "'''Cuidado:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Outras páginas]] se ligam ou redirecionam para a página que você está prestes a deletar.",
        "rollback": "Reverter edições",
        "rollback_short": "Reverter",
        "autoblockid": "Autobloqueio #$1",
        "block": "Bloquear usuário",
        "unblock": "Desbloquear usuário",
-       "blockip": "Bloquear usuário",
+       "blockip": "Bloquear {{GENDER:$1|utilizador|utilizadora}}",
        "blockip-legend": "Bloquear usuário",
        "blockiptext": "Utilize o formulário abaixo para bloquear o acesso à escrita de um endereço específico de IP ou nome de usuário.\nIsto só deve ser feito para prevenir vandalismo, e de acordo com a [[{{MediaWiki:Policy-url}}|política]]. Preencha com um motivo específico a seguir (por exemplo, citando páginas que sofreram vandalismo).",
        "ipaddressorusername": "Endereço de IP ou nome de usuário:",
index a292b76..b41e159 100644 (file)
@@ -61,7 +61,8 @@
                        "לערי ריינהארט",
                        "555",
                        "아라",
-                       "Leon saudanha"
+                       "Leon saudanha",
+                       "Macofe"
                ]
        },
        "tog-underline": "Sublinhar ligações:",
@@ -78,7 +79,7 @@
        "tog-watchdefault": "Adicionar as páginas e ficheiros que eu editar às minhas páginas vigiadas",
        "tog-watchmoves": "Adicionar as páginas e ficheiros que eu mover às minhas páginas vigiadas",
        "tog-watchdeletion": "Adicionar as páginas e ficheiros que eu eliminar às minhas páginas vigiadas",
-       "tog-watchrollback": "Adicionar páginas onde fiz uma reversão à minha lista de artigos vigiados",
+       "tog-watchrollback": "Adicionar páginas onde fiz uma reversão às minhas páginas vigiadas",
        "tog-minordefault": "Por omissão, marcar todas as edições como menores",
        "tog-previewontop": "Mostrar a antevisão antes da caixa de edição",
        "tog-previewonfirst": "Mostrar a antevisão na primeira edição",
        "sort-descending": "Ordenar por ordem descendente",
        "sort-ascending": "Ordenar por ordem ascendente",
        "nstab-main": "Página",
-       "nstab-user": "Página d{{GENDER:{{#titleparts:{{PAGENAME}}|1|1}}|o utilizador|a utilizadora|e utilizador(a)}}",
+       "nstab-user": "Página d{{GENDER:{{BASEPAGENAME}}|o utilizador|a utilizadora|e utilizador(a)}}",
        "nstab-media": "Multimédia",
        "nstab-special": "Página especial",
        "nstab-project": "Página de projeto",
        "mergehistory-empty": "Não existem revisões fundíveis.",
        "mergehistory-success": "Foram fundidas $3 {{PLURAL:$3|edição|edições}} de [[:$1]] em [[:$2]].",
        "mergehistory-fail": "Não foi possível fundir os históricos; verifique a página e os parâmetros de tempo, por favor.",
-       "mergehistory-fail-toobig": "Não é possível mesclar o histórico, já que um número de revisão(ões) acima do limite ($1 {{PLURAL:$1|revisão|revisões}}) seriam movidos.",
+       "mergehistory-fail-toobig": "Não é possível fundir o histórico, já que um número de revisão(ões) acima do limite ($1 {{PLURAL:$1|revisão|revisões}}) seriam movidos.",
        "mergehistory-no-source": "A página de origem $1 não existe.",
        "mergehistory-no-destination": "A página de destino $1 não existe.",
        "mergehistory-invalid-source": "A página de origem precisa ser um título válido.",
        "unwatchthispage": "Parar de vigiar esta página",
        "notanarticle": "Não é uma página de conteúdo",
        "notvisiblerev": "Edição eliminada",
-       "watchlist-details": "{{PLURAL:$1|Existe $1 página|Existem $1 páginas}} em sua lista de páginas vigiadas, excluindo-se as páginas de discussão.",
+       "watchlist-details": "{{PLURAL:$1|Existe $1 página|Existem $1 páginas}} na sua lista de páginas vigiadas, excluindo-se as páginas de discussão.",
        "wlheader-enotif": "A notificação por correio eletrónico está ativa.",
        "wlheader-showupdated": "As páginas modificadas desde a última vez que as visitou aparecem destacadas a '''negrito'''.",
        "wlnote": "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas <strong>$1</strong> alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} até $3, $4.",
        "delete-edit-reasonlist": "Editar motivos de eliminação",
        "delete-toobig": "Esta página tem um histórico longo, com mais de $1 {{PLURAL:$1|edição|edições}}.\nA eliminação de páginas como esta foi restringida na {{SITENAME}}, para evitar problemas acidentais.",
        "delete-warning-toobig": "Esta página tem um histórico de edições longo, com mais de $1 {{PLURAL:$1|edição|edições}}.\nEliminá-la poderá causar problemas na base de dados da {{SITENAME}};\nprossiga com precaução.",
+       "delete-cantedit": "Não é possível eliminar esta página porque não possui os privilégios necessários para a editar.",
        "deleting-backlinks-warning": "'''Aviso:''' Existem [[Special:WhatLinksHere/{{FULLPAGENAME}}|páginas]] que contêm ligações para a página que está prestes a eliminar ou que a transcluem.",
        "rollback": "Reverter edições",
        "rollback_short": "Reverter",
        "sp-contributions-newonly": "Mostrar só edições que são criações de páginas",
        "sp-contributions-submit": "Pesquisar",
        "whatlinkshere": "Páginas afluentes",
-       "whatlinkshere-title": "Páginas que têm ligações para \"$1\"",
+       "whatlinkshere-title": "Páginas com ligações para \"$1\"",
        "whatlinkshere-page": "Página:",
        "linkshere": "As seguintes páginas têm ligação a '''[[:$1]]''':",
        "nolinkshere": "Não existem afluentes para '''[[:$1]]''' com as condições especificadas.",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussão]])",
        "unknown_extension_tag": "\"$1\" é uma marca de extensão desconhecida",
        "duplicate-defaultsort": "<strong>Aviso:</strong> A chave de ordenação padrão \"$2\" sobrepõe-se à anterior \"$1\".",
-       "duplicate-displaytitle": "<strong> Aviso: </ strong> Exibir título \"$ 2\" substituindo o título anteriormente em exibição \"$ 1\".",
+       "duplicate-displaytitle": "<strong>Aviso:</strong> Exibir título \"$2\" substituindo o título anteriormente em exibição \"$1\".",
        "version": "Versão",
        "version-extensions": "Extensões instaladas",
        "version-skins": "Temas instalados",
index e135277..d2d24d2 100644 (file)
        "viewsource-title": "Page title shown when trying to edit a protected page. Parameters:\n* $1 - the name of the page",
        "actionthrottled": "This is the title of an error page. Read it in combination with {{msg-mw|actionthrottledtext}}.",
        "actionthrottledtext": "Used as error message. Read it in combination with {{msg-mw|actionthrottled}}.",
-       "protectedpagetext": "This message is displayed when trying to edit a page you can't edit because it has been protected.\n\nThe title for this message is {{msg-mw|Protectedpage}}.\n\nParameters:\n* $1 - (Unused) the raw name of the right which is needed to edit the page",
+       "protectedpagetext": "This message is displayed when trying to edit a page you can't edit because it has been protected.\n\nThe title for this message is {{msg-mw|Protectedpage}}.\n\nParameters:\n* $1 - (Unused) the raw name of the right which is needed to edit the page\n* $2 - (Unused) the action the user attempted to perform",
        "viewsourcetext": "The text shown when displaying the source of a page that the user has no permission to edit",
        "viewyourtext": "Same as {{msg-mw|viewsourcetext}} but when showing the text submitted by the user, this happens e.g. when the user was blocked while he is editing the page",
-       "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}}.",
+       "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}}.",
-       "cascadeprotected": "Parameters:\n* $1 - number of cascade-protected pages, used for PLURAL\n* $2 - list of cascade-protected pages",
-       "namespaceprotected": "Parameters:\n* $1 - namespace name",
-       "customcssprotected": "Used as error message.",
-       "customjsprotected": "Used as error message.",
-       "mycustomcssprotected": "Used as error message.",
-       "mycustomjsprotected": "Used as error message.",
+       "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",
+       "customjsprotected": "Used as error message. Parameters:\n* $1 - (Unused) the action the user attempted to perform",
+       "mycustomcssprotected": "Used as error message. Parameters:\n* $1 - (Unused) the action the user attempted to perform",
+       "mycustomjsprotected": "Used as error message. Parameters:\n* $1 - (Unused) the action the user attempted to perform",
        "myprivateinfoprotected": "Used as error message.",
        "mypreferencesprotected": "Used as error message.",
        "ns-specialprotected": "Error message displayed when trying to edit a page in the Special namespace",
        "randomincategory": "{{doc-special|RandomInCategory}}",
        "randomincategory-invalidcategory": "Message shown if an invalid category is specified.\n\nParameters:\n* $1 - the invalid category name given\n\n(Note, if the category is simply empty, but could possibly exist, {{msg-mw|randomincategory-nopages}} is shown instead)",
        "randomincategory-nopages": "Message shown from [[Special:RandomInCategory]] if the category is empty.\n\nParameters:\n* $1 - the category name (without the namespace prefix)",
-       "randomincategory-selectcategory": "Shown on [[Special:RandomInCategory]] if no category is selected.\n\nDisplays a form allowing the user to input a category name.\n\nParameters:\n* $1 - the text field input box\n* $2 - the go button which has the label {{msg-mw|randomincategory-selectcategory-submit}}.",
-       "randomincategory-selectcategory-submit": "Used as label for the Submit button which is used as <code>$2</code> in {{msg-mw|Randomincategory-selectcategory}}.\n{{Identical|Go}}",
+       "randomincategory-category": "Shown on [[Special:RandomInCategory]] as a label for a text box allowing the user to input a category name.",
+       "randomincategory-legend": "Legend to the form on [[Special:RandomInCategory]]. {{identical|randomicategory}}",
        "randomredirect": "{{doc-special|RandomRedirect}}",
        "randomredirect-nopages": "Parameters:\n* $1 - list of namespaces\n* $2 - (Unused) number of namespaces\nSee also:\n* {{msg-mw|Randompage-nopages}}",
        "statistics": "{{doc-special|Statistics}}\n{{Identical|Statistics}}",
        "exbeforeblank": "Automated deletion reason when deleting a page for admins providing that the page was blanked before deletion.\n\nParameters:\n* $1 - content before blanking",
        "delete-confirm": "Used as page title. Parameters:\n* $1 - the page title\n{{Identical|Delete}}",
        "delete-legend": "{{Identical|Delete}}",
-       "historywarning": "Warning when about to delete a page that has history.\n\nFollowed by a link which points to the history page.\n\nParameters:\n* $1 - the <b>approximate</b> number of revisions that the page has, the message should not claim to give an exact count",
+       "historywarning": "Warning when about to delete a page that has history.\n\nFollowed by a link which points to the history page.\n\nParameters:\n* $1 - the number of revisions that the page has",
        "confirmdeletetext": "Introduction shown when deleting a page.\n\nRefers to {{msg-mw|Policy-url}}.",
        "actioncomplete": "Used in several situations, for example when a page has been deleted.\n\nSee also:\n* {{msg-mw|Actionfailed|page title}}",
        "actionfailed": "Used as page title when the submit operation failed, in [[Special:RevisionDelete]].\n\nSee also:\n* {{msg-mw|Actioncomplete|page title}}",
        "delete-edit-reasonlist": "Shown beneath the page deletion form on the right side. It is a link to {{msg-mw|Deletereason-dropdown|notext=1}}.\n\nSee also:\n* {{msg-mw|Ipb-edit-dropdown}}\n* {{msg-mw|Protect-edit-reasonlist}}.\n{{Identical|Edit delete reasons}}",
        "delete-toobig": "Parameters:\n* $1 - the upper limit of number of revisions\nSee also:\n* {{msg-mw|Delete-warning-toobig}}",
        "delete-warning-toobig": "Parameters:\n* $1 - the upper limit of number of revisions\nSee also:\n* {{msg-mw|Delete-toobig}}",
-       "delete-cantedit": "Used as error message when deleting the page.",
+       "deleteprotected": "Used as error message when deleting the page.",
        "deleting-backlinks-warning": "A warning shown when a page that is being deleted has at least one link to it or is transcluded in at least one page.",
        "rollback": "{{Identical|Rollback}}",
        "rollback_short": "{{Identical|Rollback}}",
        "protect-summary-cascade": "Used in edit summary when cascade protecting a page. Appears in protection log. See [[Special:Log]] and [[m:Special:Log]].\n\nAlso used in [[Special:ProtectedPages]] when a page is cascade protected. See example: [[m:Special:ProtectedPages]].<br />\nSee also:\n*{{msg-mw|Restriction-level-sysop}}\n*{{msg-mw|Restriction-level-autoconfirmed}}",
        "protect-expiring": "Used as expiry text in page history, and in [[Special:Protectedtitles]], [[Special:Protectedpages]], and extension FlaggedRevs.\n* $1 - a date and time\n* $2 - a date (optional)\n* $3 - a time (optional)\nIf the expiry is indefinite, {{msg-mw|protect-expiry-indefinite}} is used.\n{{Identical|Expires $1 (UTC)}}",
        "protect-expiring-local": "Parameter:\n* $1 - a timestamp like \"22:51, 23 July 2011 (UTC)\" depending on the wiki content language.\n{{Identical|Expire}}",
-       "protect-expiry-indefinite": "Used as expiry text in page history, and in [[Special:Protectedtitles]], [[Special:Protectedpages]], and extension FlaggedRevs.\n\nIf the expiry is definite, {{msg-mw|protect-expiring}} is used.",
+       "protect-expiry-indefinite": "Used as expiry text in page history, and in [[Special:Protectedtitles]], [[Special:Protectedpages]], and extension FlaggedRevs.\n\nIf the expiry is definite, {{msg-mw|protect-expiring}} is used.\n{{Identical|Indefinite}}",
        "protect-cascade": "See [[meta:Protect]] for more information.",
        "protect-cantedit": "Used as error message when changing the protection levels of the page.",
        "protect-othertime": "Used on the page protection form as label for the following input field (text)\n{{Identical|Other time}}",
        "block": "{{doc-special|Block}}\n{{Identical|Block user}}",
        "unblock": "{{doc-special|Unblock}}",
        "unblock-summary": "{{doc-specialpagesummary|unblock}}",
-       "blockip": "Used as the text of a link in the sidebar toolbox. Clicking this link takes you to [[Special:Block]], with a relevant username or IP address (e.g. \"Username\" on [[User talk:Username]], [[Special:Contributions/Username]], etc.) already filled in.\n\n{{Identical|Block user}}",
+       "blockip": "Used as the text of a link in the sidebar toolbox. Clicking this link takes you to [[Special:Block]], with a relevant username or IP address (e.g. \"Username\" on [[User talk:Username]], [[Special:Contributions/Username]], etc.) already filled in.\n\nParameters:\n* $1 - username, for GENDER support\n{{Identical|Block user}}",
        "blockip-legend": "Legend/Header for the fieldset around the input form of [[Special:Block]].\n\n{{Identical|Block user}}",
        "blockiptext": "Used in the {{msg-mw|Blockip}} form in [[Special:Block]].\n\nRefers to {{msg-mw|Policy-url}}.\n\nThis message may follow the message {{msg-mw|Ipb-otherblocks-header}} and other block messages.\n\nSee also:\n* {{msg-mw|Unblockiptext}}",
        "ipaddressorusername": "{{Identical|IP address or username}}",
        "import-summary": "{{doc-specialpagesummary|import}}",
        "importinterwiki": "Used as legend for the Import form in [[Special:Import]].",
        "import-interwiki-text": "Used as summary for the Import form in [[Special:Import]].",
-       "import-interwiki-source": "Used as label for input box in [[Special:Import]].",
+       "import-interwiki-sourcewiki": "Used as label for dropdown box in [[Special:Import]].",
+       "import-interwiki-sourcepage": "Used as label for input box in [[Special:Import]].",
        "import-interwiki-history": "This is an option on [[Special:Import]]. Usually, when unchecked, only the first version of a page is imported. When you check the option, all versions are imported. This is important often to check for licensing reasons.\n\nSee also:\n* {{msg-mw|Import-interwiki-templates}}\n* {{msg-mw|Import-interwiki-namespace}}\n* {{msg-mw|Import-comment}}\n* {{msg-mw|Import-interwiki-rootpage}}\n* {{msg-mw|Import-interwiki-submit}}",
        "import-interwiki-templates": "Used as label for the checkbox in [[Special:Import]].\n\nSee also:\n* {{msg-mw|Import-interwiki-history}}\n* {{msg-mw|Import-interwiki-namespace}}\n* {{msg-mw|Import-comment}}\n* {{msg-mw|Import-interwiki-rootpage}}\n* {{msg-mw|Import-interwiki-submit}}",
        "import-interwiki-submit": "Used as Submit button text in [[Special:Import]].\n\nSee also:\n* {{msg-mw|Import-interwiki-history}}\n* {{msg-mw|Import-interwiki-templates}}\n* {{msg-mw|Import-interwiki-namespace}}\n* {{msg-mw|Import-comment}}\n* {{msg-mw|Import-interwiki-rootpage}}\n{{Identical|Import}}",
        "logentry-pagelang-pagelang": "{{Logentry}}\nAdditional parameters:\n* $4 - old language code, or \"[def]\" (hard-coded)\n* $5 - new language code, or \"[def]\" (hard-coded)",
        "default-skin-not-found": "Message shown when the default skin for this MediaWiki installation can not be found.\n\nParameters:\n* $1: skin identifier for the default skin\n* $2: list of installed skins, composed using {{msg-mw|default-skin-not-found-row-enabled}} and {{msg-mw|default-skin-not-found-row-disabled}}\n* $3: code snippet to use to enable installed skins",
        "default-skin-not-found-no-skins": "Message shown when the default skin for this MediaWiki installation can not be found and the installation has no skins at all.\n\nParameters:\n* $1: name of the default skin",
-       "default-skin-not-found-row-enabled": "One row of the list of installed skins shown as a part of {{msg-mw|default-skin-not-found}}, for an enabled skin.\n\nParameters:\n* $1: skin identifier\n$2: human-readable skin name",
+       "default-skin-not-found-row-enabled": "One row of the list of installed skins shown as a part of {{msg-mw|default-skin-not-found}}, for an enabled skin.\n\nParameters:\n* $1: skin identifier\n$2: human-readable skin name",
        "default-skin-not-found-row-disabled": "One row of the list of installed skins shown as a part of {{msg-mw|default-skin-not-found}}, for a disabled skin.\n\nParameters:\n* $1: skin identifier\n$2: human-readable skin name"
 }
index e219034..b55a995 100644 (file)
        "searchprofile-advanced-tooltip": "Akllasqa suti k'itikunapi maskay",
        "search-result-size": "$1 ({{PLURAL:$2|1 rima|$2 rimakuna}})",
        "search-result-category-size": "{{PLURAL:$1|1 wankurisqa|$1 wankurisqa}} ({{PLURAL:$2|1 urin katiguriya|$2 urin katiguriya}}, {{PLURAL:$3|1 willañiqi|$3 willañiqi}})",
-       "search-result-score": "Chaniyuq kaynin: $1%",
        "search-redirect": "(pusapuna $1)",
        "search-section": "(raki $1)",
        "search-file-match": "(willañiqip samiqninta taripan)",
        "uploadwarning": "Willañiqi churkuymanta paqtataq niy",
        "uploadwarning-text": "Ama hina kaspa, kay qatiqpi kaq willañiqimanta willaykunata hukchaspa musuqmanta ruraykachay.",
        "savefile": "Willañiqita waqaychay",
-       "uploadedimage": "«[[$1]]» churkusqa.",
-       "overwroteimage": "\"[[$1]]\" musuqmanta churkusqa",
        "uploaddisabled": "Willañiqi churkuyman ama nisqa",
        "copyuploaddisabled": "URL-pa churkunanqa manam atinchu.",
        "uploaddisabledtext": "Willañiqi churkuyqa manam saqillasqachu.",
        "watchlist-details": "Watiqana sutisuyuykipiqa {{PLURAL:$1|$1 p'anqam|$1 p'anqakunam}}, rimanakuna p'anqakunata mana yupaspa.",
        "wlheader-enotif": "E-chaskimanta musyachinaman arí nisqañam.",
        "wlheader-showupdated": "Qayna watukamusqaykimantapacha hukchasqa p'anqakunataqa '''yanasapa''' nisqapim rikunki.",
+       "wlnote": "Kay qatiqpiqa {{PLURAL:$1|qhipaq hukchasqam|'''$1''' qhipaq hukchasqakunam}} qhipaq {{PLURAL:$2|urapim|'''$2''' urakunapim}}, musuqchasqa $3, $4.",
        "wlshowlast": "$1 ura, $2 p'unchaw $3-mantapacha hukchasqakunata rikuchiy",
        "watchlist-options": "Watiqana sutisuyupaq allinkachinakuna",
        "watching": "Watiqasqakunaman yapaspa...",
index 337f61e..6c78c09 100644 (file)
        "talkpagelinktext": "Rimanakuy",
        "specialpage": "Mana shukkunashina panka",
        "personaltools": "Kikinpak llankanaman yanapanakuna",
-       "postcomment": "Mushuk raki",
        "articlepage": "Pankata rikuna",
        "talk": "Rimanakuna",
        "views": "Rikunakuna",
        "remembermypassword": "Kay Internet-wampunapi {{PLURAL:$1|shuk punchata|$1 punchakunata}} ñuka rurak shutiwan yaykushkami katichiwapay.",
        "login": "Yaykuna",
        "nav-login-createaccount": "Yaykuna",
-       "loginprompt": "{{SITENAME}}man yaykunkapak <i>cookies</i>-man ari ninami kapanki.",
        "userlogin": "Yaykuna",
        "logout": "Llukshina",
        "userlogout": "Llukshina",
        "upload": "Archivuta apamuna",
        "uploadlogpage": "Apamushka archiwukunapa kamu",
        "filedesc": "Uchilla rimay",
-       "uploadedimage": "«[[$1]]» apakushka.",
        "license": "Licencia:",
        "license-header": "Licencia",
        "file-anchor-link": "Archiwu",
index 7b001f2..3e6c421 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Reedy",
-                       "Sentruper"
+                       "Sentruper",
+                       "아라"
                ]
        },
        "tog-underline": "Link cun la sotliniadura",
@@ -15,7 +16,6 @@
        "tog-showtoolbar": "Fam avdé la bara d'j strumént (u j vó JavaScript)",
        "tog-editondblclick": "Mudèfiga al pàgin scjazènd do volt (u j vò JavaScript)",
        "tog-editsectiononrightclick": "S't'vù l'abilitaziòn ad cambié al seziòn <br />scjazénd e tast a dèstra sora e titul (u j vò JavaScript)",
-       "tog-rememberpassword": "Arcurdam la parola d'ordin, par piasé (fèn a un masum $1 {{PLURAL:$1|dè|dè}})",
        "tog-watchcreations": "Mett insèn al pàgin ch't'e' fat adès, intla lèsta da tní sot'occ",
        "tog-watchdefault": "Mett insèn al pàgin ch'a j ò lavurè sora int la lèsta dal pàgin da tnì sot'òcc",
        "tog-watchmoves": "Mett insèn al pàgin ch'a j ò spustè int la lèsta dal pàgin da tnì sot'òcc",
        "qbmyoptions": "Al mi pàgin",
        "faq": "Question frequenti",
        "faqpage": "Prugèt:Question frequenti",
-       "vector-action-addsection": "Zonta una cjacarèda",
-       "vector-action-delete": "Scanzèla",
-       "vector-action-move": "Chèmbia nòm",
-       "vector-action-protect": "Metti-j una pruteziò",
-       "vector-action-undelete": "Armett a post",
-       "vector-action-unprotect": "Sbloca",
        "errorpagetitle": "Oci! T'ê fat una capèla",
        "returnto": "Torna indrì a $1.",
        "tagline": "Da {{SITENAME}}",
        "search-interwiki-more": "(ad piò)",
        "powersearch-legend": "Scandaja a fònd",
        "powersearch-ns": "Zerca int'j spàzi d'nom:",
-       "powersearch-redir": "Fà una lèsta d'al ri-direziòn",
        "preferences": "I mì gost",
        "mypreferences": "I mi gòst",
        "group-sysop": "Aministradór",
        "recentchanges": "I ultum cambiamént",
        "recentchanges-legend": "Upziòn d'j ultum cambiamént",
        "recentchanges-feed-description": "Ste canël e' fa avdè i cambiamént piò rezent aj artècul d'sta wiki.",
-       "rclistfrom": "Fam avdè i cambiamént növ a cminzipiè da $1",
+       "rclistfrom": "Fam avdè i cambiamént növ a cminzipiè da $3 $2",
        "rcshowhideminor": "$1 al mudèfghi znini",
        "rcshowhidebots": "$1 i bot",
        "rcshowhideliu": "$1 i patàca registrè",
        "recentchangeslinked-to": "Fam avdé sol i cambiamént al pàgin ch'j va impèt a quèla ch'la m'interèsa a me.",
        "upload": "Carga so un file",
        "uploadlogpage": "Regèstar d'j file carghé",
-       "uploadedimage": "l'à carghé \"[[$1]]\"",
        "filehist": "Stória d'e' file",
        "filehist-help": "Fà clic sora un gròp dèda/ora par avdé cun cl'éra e' file in ch'ë mumént.",
        "filehist-current": "d'adès",
        "booksources-go": "Và pu",
        "log": "Regèstar",
        "allpages": "Tot al pàgin",
-       "alphaindexline": "Da $1 a $2",
        "prevpage": "Pàgina prèma d'questa ($1)",
        "allpagesfrom": "Fam avdè al pàgin cminzipiènd da:",
        "allpagesto": "Fam avdé al pàgin infèn a:",
index 26c258a..98f2951 100644 (file)
@@ -7,7 +7,8 @@
                        "Jose77",
                        "Mmistmurt",
                        "MoubarikBelkasim",
-                       "Urhixidur"
+                       "Urhixidur",
+                       "아라"
                ]
        },
        "sunday": "Asamas (Eřḥedd)",
        "navigation": "Tagriwa",
        "qbfind": "Af",
        "qbedit": "Ẓṛeg",
-       "vector-action-move": "Smuṭṭi",
-       "vector-view-create": "Seɣnu",
-       "vector-view-edit": "Ẓṛeg",
-       "vector-view-history": "Ẓeṛ amezruy",
-       "vector-view-view": "Ɣeṛ",
        "actions": "Timegga",
        "errorpagetitle": "Anezri",
        "returnto": "Dwl ghar $1.",
        "remembermypassword": "ejj (login) inu deg uselkim a (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "login": "Adf",
        "nav-login-createaccount": "Adef / egg amiḍan",
-       "loginprompt": "itxessa ad-teṭfed (''cookies'') bac ad tadfed ɣar {{SITENAME}}.",
        "userlogin": "Adf / egg amiḍan",
        "logout": "Ufugh",
        "userlogout": "Ufugh",
        "viewprevnext": "Ẓeṛ ($1 {{int:pipe-separator}} $2) ($3)",
        "searchprofile-everything": "Marra",
        "searchprofile-articles-tooltip": "Rzu di $1",
-       "searchprofile-project-tooltip": "Rzu di $1",
        "search-result-size": "$1 ({{PLURAL:$2|1 tawalt|$2 tiwalin}})",
        "search-redirect": "(awi $1)",
        "search-suggest": "Ttugha txsd a tinid: $1",
        "recentchanges": "Tiẓṛigin tineggura",
        "recentchanges-feed-description": "Bbar tiẓṛigin timayutin n wiki deg usudem(feed) a .",
        "rcnotefrom": "ɣar wadday d tiẓṛigin zi '''$2''' (ar '''$1''' ).",
-       "rclistfrom": "Ẓar tiẓṛigin timaynutin ig ibeddan zi $1",
+       "rclistfrom": "Ẓar tiẓṛigin timaynutin ig ibeddan zi $3 $2",
        "rcshowhideminor": "$1 tiẓṛigin d-timeẓyanin",
        "rcshowhidebots": "$1 iroboten(robots)",
        "rcshowhideliu": "$1 users ig yudeffen",
        "uploadlogpage": "Zdem-d aɣmis",
        "filedesc": "Asgbr",
        "fileuploadsummary": "Asgbr:",
-       "uploadedimage": "itwazdem-d \"[[$1]]\"",
        "watchthisupload": "Xm tasbtirt a",
        "listfiles": "Tabdart n ifayluten",
        "file-anchor-link": "Afaylu",
        "log": "Aɣmis",
        "all-logs-page": "Maṛṛa iɣmisen",
        "allpages": "Marra tasniwin",
-       "alphaindexline": "$1 ɣa $2",
        "nextpage": "Tasna zzat ($1)",
        "prevpage": "Tasna zzat ($1)",
        "allpagesfrom": "Scan-d Tasniwin beddant zi:",
index e9b0e3d..42deb69 100644 (file)
        "talkpagelinktext": "Discussiun",
        "specialpage": "Pagina speziala",
        "personaltools": "Utensils persunals",
-       "postcomment": "Nova secziun",
        "articlepage": "Mussar la pagina da cuntegn",
        "talk": "Discussiun",
        "views": "Questa pagina",
        "externaldberror": "U ch'i è capità ina errur cun l'autentificaziun externa u che ti na dastgas betg actualisar tes conto extern.",
        "login": "T'annunziar",
        "nav-login-createaccount": "T'annunziar / crear in conto",
-       "loginprompt": "Ti stos avair '''activà ils cookies''' per pudair t'annunziar tar {{SITENAME}}.",
        "userlogin": "T'annunziar / crear in conto",
        "userloginnocreate": "T'annunziar",
        "logout": "Sortir",
        "searchprofile-advanced-tooltip": "Tschertgar en ulteriurs tips da pagina",
        "search-result-size": "$1 ({{PLURAL:$2|in pled|$2 pleds}})",
        "search-result-category-size": "{{PLURAL:$1|1 commember|$1 commembers}} ({{PLURAL:$2|1 sutcategoria|$2 sutcategorias}}, {{PLURAL:$3|1 datoteca|$3 datotecas}})",
-       "search-result-score": "Relevanza: $1 %",
        "search-redirect": "(renvià da $1)",
        "search-section": "(chapitel $1)",
        "search-suggest": "Has ti manegià: $1",
        "uploadwarning": "Attenziun",
        "uploadwarning-text": "Mida per plaschair la descripziun da la datoteca sutvart ed emprova danovamain.",
        "savefile": "Memorisar la datoteca",
-       "uploadedimage": "\"[[$1]]\" è vengì chargià si",
-       "overwroteimage": "ha chargià si ina nova versiun da \"[[$1]]\"",
        "uploaddisabled": "Chargiar si è deactivà.",
        "copyuploaddisabled": "Il transferir per URL è deactivà.",
        "uploaddisabledtext": "La funcziun da chargiar si datotecas è deactivada.",
        "watchlist-details": "Ti has {{PLURAL:$1|$1 pagina|$1 paginas}} sin tia glista d'observaziun, paginas da discussiun exclusas.",
        "wlheader-enotif": "Il servetsch d'infurmaziun per e-mail è activà.",
        "wlheader-showupdated": "Paginas ch'èn vegnidas modifitgadas suenter che ti has vis els la davosa giada èn mussads '''grass'''",
+       "wlnote": "Sutvart {{PLURAL:$1|è l'ultima midada|èn las ultimas '''$1''' midadas}} entaifer {{PLURAL:$2|l'ultima ura|las ultimas '''$2''' uras}}. Actualisà ils $3 las $4.",
        "wlshowlast": "Mussar: las ultimas $1 uras, ils ultims $2 dis u $3.",
        "watchlist-options": "Opziuns per la glista d'observaziun",
        "watching": "observ...",
        "duplicate-defaultsort": "'''Attenziun:''' La clav da zavrar da standard \"$2\" remplazza la clav da zavrar da standard veglia \"$1\".",
        "version": "Versiun",
        "version-extensions": "Extensiuns installadas",
+       "version-skins": "Skins",
        "version-specialpages": "Paginas spezialas",
        "version-parserhooks": "Hooks dal parser",
        "version-variables": "Variablas",
        "version-antispam": "Prevenziun da spam",
-       "version-skins": "Skins",
        "version-other": "Auter",
        "version-mediahandlers": "Manipulaturs da meds",
        "version-hooks": "Hooks",
index db720ce..a668d7d 100644 (file)
        "hidetoc": "ascunde",
        "collapsible-collapse": "Restrânge",
        "collapsible-expand": "Extinde",
+       "confirmable-confirm": "Sunteți sigur{{GENDER:$1||ă}}?",
+       "confirmable-yes": "Da",
+       "confirmable-no": "Nu",
        "thisisdeleted": "Vizualizare sau recuperare $1?",
        "viewdeleted": "Vizualizați $1?",
        "restorelink": "{{PLURAL:$1|o modificare ștearsă|$1 modificări șterse|$1 de modificări șterse}}",
        "invalidtitle-knownnamespace": "Titlu invalid cu spațiul de nume „$2” și textul „$3”",
        "invalidtitle-unknownnamespace": "Titlu invalid cu numărul spațiului de nume $1 necunoscut și textul „$2”",
        "exception-nologin": "Neautentificat{{GENDER:||ă}}",
-       "exception-nologin-text": "Vă rugăm să vă [[Special:Userlogin|autentificați]] pentru a accesa această pagină sau acțiune.",
+       "exception-nologin-text": "Vă rugăm să vă autentificați pentru a accesa această pagină sau acțiune.",
        "exception-nologin-text-manual": "Vă rugăm să vă $1 pentru a accesa această pagină sau acțiune.",
        "virus-badscanner": "Configurație greșită: scaner de virus necunoscut: ''$1''",
        "virus-scanfailed": "scanare eșuată (cod $1)",
        "parser-template-recursion-depth-warning": "Limită de adâncime a recursiei depășită ($1)",
        "language-converter-depth-warning": "Limita adâncimii convertorului de limbă a fost depășită ($1)",
        "node-count-exceeded-category": "Pagini unde numărul de noduri este depășit",
-       "node-count-exceeded-category-desc": "O categorie pentru paginile în care numărul de noduri este depășit.",
+       "node-count-exceeded-category-desc": "Pagina depășește numărul maxim de noduri.",
        "node-count-exceeded-warning": "Pagina a depășit numărul de noduri",
        "expansion-depth-exceeded-category": "Pagini unde profunzimea de expansiune este depășită",
-       "expansion-depth-exceeded-category-desc": "Aceasta este o categorie pentru paginile în care a fost depășită profunzimea de expansiune.",
+       "expansion-depth-exceeded-category-desc": "Pagina depășește profunzimea maximă de expansiune.",
        "expansion-depth-exceeded-warning": "Pagina depășește profunzimea de expansiune",
        "parser-unstrip-loop-warning": "Buclă nedetașabilă detectată",
        "parser-unstrip-recursion-limit": "Limita de recursivitate nedetașabilă depășită ($1)",
        "preferences": "Preferințe",
        "mypreferences": "Preferințe",
        "prefs-edits": "Număr de modificări:",
-       "prefsnologintext2": "Vă rugăm să vă $1 pentru a vă seta preferințele de utilizator.",
+       "prefsnologintext2": "Vă rugăm să vă autentificați pentru a vă modifica preferințele de utilizator.",
        "prefs-skin": "Aspect",
        "skin-preview": "Previzualizare",
        "datedefault": "Nici o preferință",
        "trackingcategories-desc": "Criteriile de includere în categorie",
        "noindex-category-desc": "Pagina conține cuvântul magic <code><nowiki>__NOINDEX__</nowiki></code> (aflându-se într-un spațiu de nume care permite acest marcaj) și, drept urmare, nu este indexată de roboți.",
        "index-category-desc": "Pagina conține cuvântul magic <code><nowiki>__INDEX__</nowiki></code> (aflându-se într-un spațiu de nume care permite acest marcaj) și, ca urmare, este indexată de roboți, deși în mod normal acest lucru nu s-ar fi întâmplat.",
-       "post-expand-template-inclusion-category-desc": "După extinderea tuturor formatelor, dimensiunea paginii a depășit <code>$wgMaxArticleSize</code>, astfel că anumite formate nu au fost extinse.",
-       "post-expand-template-argument-category-desc": "După extinderea argumentului unui format (ceva plasat între acolade triple, precum <code>{{{Foo}}}</code>), pagina a depășit <code>$wgMaxArticleSize</code>.",
-       "expensive-parserfunction-category-desc": "Prea multe funcții costisitoare de analiză (precum <code>#ifexist</code>) incluse într-o pagină. Vedeți [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
-       "broken-file-category-desc": "Categorie adăugată dacă pagina conține o legătură întreruptă către un fișier (o legătură folosită pentru încorporarea unui fișier atunci când fișierul nu există).",
-       "hidden-category-category-desc": "Această categorie conține <code><nowiki>__HIDDENCAT__</nowiki></code>, ceea ce împiedică în mod implicit afișarea ei în zona cu legături către categorii din cadrul paginilor.",
+       "post-expand-template-inclusion-category-desc": "Dimensiunea paginii a depășit <code>$wgMaxArticleSize</code> după extinderea tuturor formatelor, astfel că anumite formate nu au fost extinse.",
+       "post-expand-template-argument-category-desc": "Pagina a depășit <code>$wgMaxArticleSize</code> după extinderea argumentului unui format (ceva plasat între acolade triple, precum <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "Pagina folosește prea multe funcții costisitoare de analiză (precum <code>#ifexist</code>). Vedeți [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "Pagina conține o legătură întreruptă către un fișier (o legătură folosită pentru încorporarea unui fișier atunci când fișierul nu există).",
+       "hidden-category-category-desc": "Categoria conține <code><nowiki>__HIDDENCAT__</nowiki></code> în conținutul său, ceea ce împiedică în mod implicit afișarea ei în zona cu legături către categorii din cadrul paginilor.",
        "trackingcategories-nodesc": "Nicio descriere disponibilă.",
        "trackingcategories-disabled": "Categoria este dezactivată",
        "mailnologin": "Nu există adresă de trimitere",
        "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ă $1 pentru a vizualiza sau edita elementele din lista dumneavoastră de pagini urmărite.",
+       "watchlistanontext": "Vă rugăm să vă autentificați pentru a vizualiza sau modifica elementele din lista dumneavoastră 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.",
        "delete-edit-reasonlist": "Modifică motivele ștergerii",
        "delete-toobig": "Această pagină are un istoric al modificărilor important, cu mai mult de $1 {{PLURAL:$1|versiune|versiuni|de versiuni}}.\nȘtergerea unei astfel de pagini a fost restricționată pentru a preveni apariția unor erori în {{SITENAME}}.",
        "delete-warning-toobig": "Această pagină are un istoric al modificărilor mult prea mare, cu mai mult de $1 {{PLURAL:$1|versiune|versiuni|de versiuni}}.\nȘtergerea sa poate afecta baza de date a sitului {{SITENAME}};\nacționați cu precauție.",
+       "delete-cantedit": "Nu puteți șterge această pagină, deoarece nu aveți permisiunea de a o modifica.",
        "deleting-backlinks-warning": "'''Atenție:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Alte pagini]] se leagă sau transclud pagina pe care doriți să o ștergeți.",
        "rollback": "Editări de revenire",
        "rollback_short": "Revenire",
        "autoblockid": "Autoblocare #$1",
        "block": "Blocare utilizator",
        "unblock": "Deblocare utilizator",
-       "blockip": "Blocare utilizator",
+       "blockip": "Blocare {{GENDER:$1|utilizator|utilizatoare}}",
        "blockip-legend": "Blocare utilizator/adresă IP",
        "blockiptext": "Pentru a bloca un utilizator completați rubricile de mai jos.<br />\n'''Respectați [[{{MediaWiki:Policy-url}}|politica de blocare]].'''<br />\nPrecizați motivul blocării; de exemplu indicați paginile vandalizate de acest utilizator.",
        "ipaddressorusername": "Adresă IP sau nume de utilizator",
        "ipb-unblock-addr": "Deblochează utilizatorul $1",
        "ipb-unblock": "Deblocați un nume de utilizator sau o adresă IP",
        "ipb-blocklist": "Vezi blocările existente",
-       "ipb-blocklist-contribs": "Contribuțiile utilizatorului $1",
+       "ipb-blocklist-contribs": "Contribuțiile {{GENDER:$1|utilizatorului $1|utilizatoarei $1}}",
        "unblockip": "Deblochează adresă IP",
        "unblockiptext": "Folosiți formularul de mai jos pentru a restaura permisiunea de scriere pentru adrese IP sau nume de utilizator blocate anterior.",
        "ipusubmit": "Elimină blocarea",
        "yesterday-at": "Ieri, la $1",
        "bad_image_list": "Formatul este următorul:\n\nNumai elementele unei liste sunt luate în considerare. (Acestea sunt linii ce încep cu *)\n\nPrima legătură de pe linie trebuie să fie spre un fișier defectuos.\n\nOrice legături ce urmează pe aceeași linie sunt considerate excepții, adică pagini unde fișierul poate apărea inclus direct.",
        "metadata": "Informații",
-       "metadata-help": "Acest fișier conține informații suplimentare, introduse probabil de aparatul fotografic digital sau scanerul care l-a generat.\nDacă fișierul a fost modificat între timp, este posibil ca unele detalii să nu mai fie valabile.",
+       "metadata-help": "Acest fișier conține informații suplimentare, introduse probabil de aparatul de fotografiat digital sau scanerul care l-a generat.\nDacă fișierul a fost modificat între timp, este posibil ca unele detalii să nu mai fie valabile.",
        "metadata-expand": "Afișează detalii suplimentare",
        "metadata-collapse": "Ascunde detalii suplimentare",
        "metadata-fields": "Câmpurile cu metadatele imaginii listate mai jos vor fi incluse în pagina de afișare a imaginii atunci când tabelul cu metadate este restrâns.\nAltele vor fi ascunse implicit.\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": "Lățime",
        "exif-imagelength": "Înălțime",
-       "exif-bitspersample": "Biți pe componentă",
+       "exif-bitspersample": "Biți per componentă",
        "exif-compression": "Metodă de comprimare",
-       "exif-photometricinterpretation": "Compoziția pixelilor",
+       "exif-photometricinterpretation": "Model de culoare",
        "exif-orientation": "Orientare",
-       "exif-samplesperpixel": "Numărul de componente",
+       "exif-samplesperpixel": "Număr de componente",
        "exif-planarconfiguration": "Aranjarea datelor",
        "exif-ycbcrsubsampling": "Mostră din fracția Y/C",
        "exif-ycbcrpositioning": "Poziționarea Y și C",
        "exif-yresolution": "Rezoluție verticală",
        "exif-stripoffsets": "Locația datelor imaginii",
        "exif-rowsperstrip": "Numărul de linii per bandă",
-       "exif-stripbytecounts": "Biți corespunzători benzii comprimate",
+       "exif-stripbytecounts": "Octeți corespunzători benzii comprimate",
        "exif-jpeginterchangeformat": "Offset pentru JPEG SOI",
-       "exif-jpeginterchangeformatlength": "Biți de date JPEG",
+       "exif-jpeginterchangeformatlength": "Octeți de date JPEG",
        "exif-whitepoint": "Cromaticitatea punctului alb",
        "exif-primarychromaticities": "Coordonatele cromatice ale culorilor primare",
        "exif-ycbcrcoefficients": "Tăria culorii coeficienților matricei de transformare",
        "exif-software": "Software folosit",
        "exif-artist": "Autor",
        "exif-copyright": "Titularul drepturilor de autor",
-       "exif-exifversion": "Versiune exif",
-       "exif-flashpixversion": "Versiune susținută de Flashpix",
+       "exif-exifversion": "Versiune EXIF",
+       "exif-flashpixversion": "Versiune de Flashpix suportată",
        "exif-colorspace": "Spațiu de culoare",
-       "exif-componentsconfiguration": "Semnificația componentelor",
+       "exif-componentsconfiguration": "Semnificația fiecărei componente",
        "exif-compressedbitsperpixel": "Mod de comprimare a imaginii",
        "exif-pixelydimension": "Lățimea imaginii",
        "exif-pixelxdimension": "Înălțimea imaginii",
        "exif-relatedsoundfile": "Fișierul audio asemănător",
        "exif-datetimeoriginal": "Data și ora producerii imaginii",
        "exif-datetimedigitized": "Data și ora digitizării",
-       "exif-subsectime": "Data/Ora milisecunde",
-       "exif-subsectimeoriginal": "Data/Ora/Original milisecunde",
-       "exif-subsectimedigitized": "Milisecunde DateTimeDigitized",
+       "exif-subsectime": "Subsecunde Data/Ora",
+       "exif-subsectimeoriginal": "Subsecunde Data/Ora/Original",
+       "exif-subsectimedigitized": "Subsecunde Data/Ora/Digitizare",
        "exif-exposuretime": "Timp de expunere",
        "exif-exposuretime-format": "$1 sec ($2)",
        "exif-fnumber": "Diafragmă",
        "exif-exposureprogram": "Program de expunere",
        "exif-spectralsensitivity": "Sensibilitate spectrală",
-       "exif-isospeedratings": "Evaluarea vitezei ISO",
+       "exif-isospeedratings": "Sensibilitate ISO",
        "exif-shutterspeedvalue": "Viteza obturatorului în APEX",
        "exif-aperturevalue": "Diafragmă în APEX",
        "exif-brightnessvalue": "Luminozitate în APEX",
        "exif-exposurebiasvalue": "Compensarea expunerii",
-       "exif-maxaperturevalue": "Apertura maximă",
+       "exif-maxaperturevalue": "Diafragmă maximă",
        "exif-subjectdistance": "Distanța față de subiect",
-       "exif-meteringmode": "Forma de măsurare",
+       "exif-meteringmode": "Mod de măsurare",
        "exif-lightsource": "Sursă de lumină",
        "exif-flash": "Bliț",
        "exif-focallength": "Distanța focală a obiectivului",
        "exif-subjectarea": "Suprafața subiectului",
        "exif-flashenergy": "Energie bliț",
-       "exif-focalplanexresolution": "Rezoluția focală plană X",
-       "exif-focalplaneyresolution": "Rezoluția focală plană Y",
-       "exif-focalplaneresolutionunit": "Unitatea de măsură pentru rezoluția focală plană",
+       "exif-focalplanexresolution": "Rezoluția orizontală a panului focal",
+       "exif-focalplaneyresolution": "Rezoluția verticală a panului focal",
+       "exif-focalplaneresolutionunit": "Unitate de măsură pentru rezoluția planului focal",
        "exif-subjectlocation": "Locația subiectului",
        "exif-exposureindex": "Indexul expunerii",
        "exif-sensingmethod": "Metoda sensibilă",
        "exif-filesource": "Fișier sursă",
        "exif-scenetype": "Tipul scenei",
-       "exif-customrendered": "Prelucrarea imaginii",
+       "exif-customrendered": "Prelucrare personalizată",
        "exif-exposuremode": "Mod de expunere",
        "exif-whitebalance": "Balanța albă",
        "exif-digitalzoomratio": "Raportul transfocării digitale",
        "exif-focallengthin35mmfilm": "Distanță focală pentru film de 35 mm",
-       "exif-scenecapturetype": "Tipul de surprindere a scenei",
+       "exif-scenecapturetype": "Tipul de captură a scenei",
        "exif-gaincontrol": "Controlul scenei",
        "exif-contrast": "Contrast",
        "exif-saturation": "Saturație",
        "exif-sharpness": "Ascuțime",
        "exif-devicesettingdescription": "Descrierea reglajelor aparatului",
        "exif-subjectdistancerange": "Distanța față de subiect",
-       "exif-imageuniqueid": "Identificarea imaginii unice",
+       "exif-imageuniqueid": "Identificator unic al imaginii",
        "exif-gpsversionid": "Versiunea de conversie GPS",
        "exif-gpslatituderef": "Latitudine nordică sau sudică",
        "exif-gpslatitude": "Latitudine",
        "exif-sensingmethod-8": "Senzorul linear al culorii secvențiale",
        "exif-filesource-3": "Aparat de fotografiat digital",
        "exif-scenetype-1": "O imagine fotografiată direct",
-       "exif-customrendered-0": "Prelucrare normală",
-       "exif-customrendered-1": "Prelucrare nestandard",
+       "exif-customrendered-0": "Procedeu normal",
+       "exif-customrendered-1": "Procedeu personalizat",
        "exif-exposuremode-0": "Expunere automată",
        "exif-exposuremode-1": "Expunere manuală",
        "exif-exposuremode-2": "Serie automată de expuneri",
-       "exif-whitebalance-0": "Balanță alb automată",
-       "exif-whitebalance-1": "Balanță alb manuală",
+       "exif-whitebalance-0": "Balans de alb automat",
+       "exif-whitebalance-1": "Balans de alb manual",
        "exif-scenecapturetype-0": "Standard",
        "exif-scenecapturetype-1": "Portret",
        "exif-scenecapturetype-2": "Portret",
        "exif-gpsdirection-t": "Direcția reală",
        "exif-gpsdirection-m": "Direcție magnetică",
        "exif-ycbcrpositioning-1": "Centrat",
-       "exif-ycbcrpositioning-2": "Co-amplasat",
+       "exif-ycbcrpositioning-2": "Coamplasat",
        "exif-dc-contributor": "Contribuitori",
        "exif-dc-coverage": "Întinderea spațială sau temporală a elementului media",
        "exif-dc-date": "Data (datele)",
        "action-pagelang": "modificați limba paginii",
        "log-name-pagelang": "Jurnal modificare limbă",
        "log-description-pagelang": "Acesta este un jurnal cu modificări ale limbii paginilor.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a modificat}} limba paginii pentru $3 din $4 în $5."
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a modificat}} limba paginii pentru $3 din $4 în $5.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activat)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''dezactivat''')"
 }
index 5004182..6bdaff5 100644 (file)
        "talkpagelinktext": "Parle",
        "specialpage": "Pàgene Speciele",
        "personaltools": "Struminde personele",
-       "postcomment": "Seziona nove",
        "articlepage": "Vide 'a pàgene de le condenute",
        "talk": "'Ngazzaminde",
        "views": "Visite",
        "externaldberror": "Vide bbuene, o stè 'n'errore de autendicazione a 'u database oppure tu non ge puè aggiorna 'u cunde tue esterne.",
        "login": "Tràse",
        "nav-login-createaccount": "Tràse / Reggistrete",
-       "loginprompt": "Tu a tenè le cookies abilitate pe tràse jndr'à {{SITENAME}}.",
        "userlogin": "Tràse / Reggistrete",
        "userloginnocreate": "Tràse",
        "logout": "Isse",
        "searchprofile-advanced-tooltip": "Cirche jndr'à le namespace personalizzete",
        "search-result-size": "$1 ({{PLURAL:$2|1 parole|$2 parole}})",
        "search-result-category-size": "{{PLURAL:$1|1 membre|$1 membre}} ({{PLURAL:$2|1 sottecategorije|$2 sottecategorije}}, {{PLURAL:$3|1 file|$3 file}})",
-       "search-result-score": "'Mbortanze: $1%",
        "search-redirect": "(Redirette $1)",
        "search-section": "(sezione $1)",
        "search-suggest": "Ce signifeche: $1",
        "uploadwarning": "Avvise de carecamende",
        "uploadwarning-text": "Pe piacere cange 'a descrizione d'u file sotte e pruève 'notra vote.",
        "savefile": "Reggistre 'u file",
-       "uploadedimage": "carechete \"[[$1]]\"",
-       "overwroteimage": "ha state carechete 'na versiona nove de \"[[$1]]\"",
        "uploaddisabled": "Carecaminde disabbilitete",
        "copyuploaddisabled": "Carecamende da l'URL disabbilitate.",
        "uploaddisabledtext": "Le carecaminde de le file sonde disabbilitete.",
        "watchlist-details": "{{PLURAL:$1|$1 pàgene|$1 pàggene}} jndr'à liste de le pàggene condrollete, scartanne le pàggene de le 'ngazzaminde.",
        "wlheader-enotif": "* Notifiche pe email abbilitate.",
        "wlheader-showupdated": "* Le pàggene ca onne state cangiate da l'urtema visite avènene fatte vedè in '''grascette'''",
+       "wlnote": "Aqquà sotte {{PLURAL:$1|ste l'urteme cangiamende|stonne l'urteme '''$1''' cangiaminde}} jndr'à {{PLURAL:$2|l'urtema ore|l'urteme '''$2''' ore}}, jndr'à $3, $4.",
        "wlshowlast": "Vide l'urteme $1 ore $2 sciurne $3",
        "watchlist-options": "Opzione d'a liste de le pàggene condrollete",
        "watching": "Fà vedè...",
index 331d7fd..b2a7d4d 100644 (file)
        "undo-failure": "Правка не может быть отменена из-за несовместимости промежуточных изменений.",
        "undo-norev": "Правка не может быть отменена, так как её не существует или она была удалена.",
        "undo-nochange": "Правка, похоже, уже была отменена.",
-       "undo-summary": "Отмена правки $1, сделанной {{GENDER:$2|участником|участницей}} [[Special:Contributions/$2|$2]] ([[User talk:$2|обс.]])",
+       "undo-summary": "Отмена правки $1, сделанной {{GENDER:$2|участником|участницей}} [[Special:Contribs/$2|$2]] ([[User talk:$2|обс.]])",
        "undo-summary-username-hidden": "Отмена правки $1, сделанной участником, чьё имя скрыто",
        "cantcreateaccounttitle": "Невозможно создать учётную запись",
        "cantcreateaccount-text": "Создание учётных записей с этого IP-адреса ('''$1''') было заблокировано {{GENDER:$3|участником|участницей|}} [[User:$3|$3]].\n\n$3 {{GENDER:$3|указал|указала}} следующую причину: ''$2''.",
        "recentchanges-label-bot": "Эта правка сделана ботом",
        "recentchanges-label-unpatrolled": "Эта правка ещё никем не патрулировалась",
        "recentchanges-label-plusminus": "Размер страницы изменился на данное количество байт",
-       "recentchanges-legend-heading": "'''Легенда:'''",
+       "recentchanges-legend-heading": "'''Легенда:&nbsp;'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (см. также [[Special:NewPages|список новых страниц]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Ниже {{PLURAL:$5|указано изменение|перечислены изменения}} с <strong>$3, $4</strong> (показано не более <strong>$1</strong>).",
        "mimesearch": "Поиск по MIME",
        "mimesearch-summary": "Эта страница позволяет фильтровать файлы по их MIME-типу. Формат ввода: типсодержимого/подтип или типсодержимого/*, например <code>image/jpeg</code>.",
        "mimetype": "MIME-тип:",
-       "download": "загрузить",
+       "download": "скачать",
        "unwatchedpages": "Страницы, за которыми никто не следит",
        "listredirects": "Список перенаправлений",
        "listduplicatedfiles": "Список файлов с дубликатами",
        "delete-edit-reasonlist": "Править список причин",
        "delete-toobig": "У этой страницы очень длинная история изменений, более $1 {{PLURAL:$1|версии|версий}}.\nУдаление таких страниц было запрещено во избежание нарушений в работе сайта «{{SITENAME}}».",
        "delete-warning-toobig": "У этой страницы очень длинная история изменений, более $1 {{PLURAL:$1|версии|версий}}.\nЕё удаление может привести к нарушению нормальной работы базы данных сайта «{{SITENAME}}»;\nдействуйте с осторожностью.",
+       "delete-cantedit": "Вы не можете удалить эту страницу, так как у вас нет разрешения на её редактирование.",
        "deleting-backlinks-warning": "'''Предупреждение.''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Другие страницы]] ссылаются на страницу, которую вы собираетесь удалить, или содержат её.",
        "rollback": "Откатить изменения",
        "rollback_short": "Откат",
        "autoblockid": "Автоблокировка #$1",
        "block": "Блокировка участника",
        "unblock": "Разблокировка участника",
-       "blockip": "Заблокировать",
+       "blockip": "Заблокировать {{GENDER:$1|участника}}",
        "blockip-legend": "Блокировка участника",
        "blockiptext": "Используйте форму ниже, чтобы заблокировать возможность записи с определённого IP-адреса.\nЭто может быть сделано только для предотвращения вандализма и только в соответствии с [[{{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": "Снять эту блокировку",
index f89f060..84d0b22 100644 (file)
        "talkpagelinktext": "діскузія",
        "specialpage": "Шпеціална сторінка",
        "personaltools": "Особны інштрументы",
-       "postcomment": "Нова секція",
        "articlepage": "Посмотрити сторінку",
        "talk": "Діскузія",
        "views": "Перегляды",
        "externaldberror": "Або ся стала хыба екстерной автентіфікачной датабазы, або не маєте дозволено мінити своє екстерне конто.",
        "login": "Приголошіня",
        "nav-login-createaccount": "Приголошіня / створїня конта",
-       "loginprompt": "К приголошіню до {{grammar:2sg|{{SITENAME}}}} мусите мати актівованы cookies.",
        "userlogin": "Приголошіня / створїня конта",
        "userloginnocreate": "Приголошіня",
        "logout": "Одголосити",
        "searchprofile-advanced-tooltip": "Задати просторы назв, де ся мать глядати",
        "search-result-size": "$1 ({{PLURAL:$2|слово|слова|слов}})",
        "search-result-category-size": "{{PLURAL:$1|1 член|$1 члена|$1 членів}} ({{PLURAL:$2|1 підкатеґорія|$2 підкатеґорії|$2 підкатеґорії}}, {{PLURAL:$3|1 файл|$3 файлы|$3 файлів}})",
-       "search-result-score": "Одповідность: $1 %",
        "search-redirect": "(напрямити $1)",
        "search-section": "(секція $1)",
        "search-suggest": "Може сьте мали на мыслї: $1",
        "uploadwarning": "Позірь к наладованю",
        "uploadwarning-text": "Просиме, зміньте опис файлу ниже і спробуйте то знову.",
        "savefile": "Уложыти файл",
-       "uploadedimage": "наладовав \"[[$1]]\"",
-       "overwroteimage": "наладована нова верзія \"[[$1]]\"",
        "uploaddisabled": "Наладовованя файлів заборонене.",
        "copyuploaddisabled": "Наладовованя файлів через URL є выпнуте.",
        "uploaddisabledtext": "Наладовованя файлів є выпнуте.",
        "watchlist-details": "{{PLURAL:$1|Єдна слїдована сторінка|слїдованы сторінкы|слїдованых сторінок}} (не рахувчі діскузны сторінкы).",
        "wlheader-enotif": "Упозорнїня  ел. поштов є запнуте.",
        "wlheader-showupdated": "Сторінкы, котры ся змінили од вашой послїднёй навщівы суть вказаны '''грубо'''",
+       "wlnote": "Ниже є {{PLURAL:$1|остатня зміна|остатнї $1 зміны|остатнїх $1 змін}} за {{PLURAL:$2|остатнїй|остатнї|остатнїх}} <b>$2</b> {{PLURAL:$2|годину|годины|годин}} до do $4, $3.",
        "wlshowlast": "Вказати зміны за послїднїх $1 годин $2 днїв $3",
        "watchlist-options": "Наставлїна списку слїдованых",
        "watching": "Придаваня до списку слїдованя...",
        "duplicate-defaultsort": "Увага: Імпліцітный ключ сортованя (DEFAULTSORTKEY) „$2“ переписує скоре наставлену годноту „$1“.",
        "version": "Верзія",
        "version-extensions": "Наіншталованы росшырїня",
+       "version-skins": "Взгляды",
        "version-specialpages": "Шпеціалны сторінкы",
        "version-parserhooks": "Припойны пункты парсера",
        "version-variables": "Перемінны",
        "version-antispam": "Охрана перед спамом",
-       "version-skins": "Взгляды",
        "version-other": "Інше",
        "version-mediahandlers": "Обслуга медії",
        "version-hooks": "Припойны пункты",
index 37206aa..daff7f8 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "D'AroemenenZullenNiVergaan",
-            "Dumitrachi T. Fundu",
-            "Hakka"
-        ]
-    },
-    "tog-underline": "Subliniaḑă ligâtura:",
-    "tog-hideminor": "Ascundeari a alâxiriloru ńiți di-tu nalili alâxiri",
-    "tog-numberheadings": "Numirari automatâ a secțiuniloru",
-    "tog-editondblclick": "Aravdă alâxirea frundzâl'ei ti dublu click (caftă JavaScript)",
-    "underline-always": "Totna",
-    "underline-never": "Vârâoarâ",
-    "sunday": "dumânicâ",
-    "monday": "luni",
-    "tuesday": "marțâ",
-    "wednesday": "ńiercuri",
-    "thursday": "gioi",
-    "friday": "viniri",
-    "saturday": "sâmbâtâ",
-    "january": "Yinaru",
-    "february": "Șcurtu",
-    "march": "Marțu",
-    "april": "Apriiru",
-    "may_long": "Maiu",
-    "june": "Cirișaru",
-    "july": "Alunaru",
-    "august": "Avgustu",
-    "september": "Yizmâciunu",
-    "october": "Sumedru",
-    "november": "Brumaru",
-    "december": "Andreu",
-    "january-gen": "Yinaru",
-    "february-gen": "Șcurtu",
-    "march-gen": "Marțu",
-    "april-gen": "Apriiru",
-    "may-gen": "Maiu",
-    "june-gen": "Cirișaru",
-    "july-gen": "Alunaru",
-    "august-gen": "Avgustu",
-    "september-gen": "Yizmâciunu",
-    "october-gen": "Sumedru",
-    "november-gen": "Brumaru",
-    "december-gen": "Andreu",
-    "jan": "yin",
-    "feb": "șcur",
-    "mar": "mar",
-    "apr": "apr",
-    "may": "mai",
-    "jun": "cir",
-    "jul": "alun",
-    "aug": "avg",
-    "sep": "yiz",
-    "oct": "sum",
-    "nov": "brum",
-    "dec": "andr",
-    "pagecategories": "{{PLURAL:$1|Categorie|Categorii}}",
-    "category_header": "Frânḑâ tu categoria \"$1\"",
-    "hidden-categories": "{{PLURAL:$1|Categorie ascumsâ|Categorii ascumsi}}",
-    "article": "Articolu",
-    "newwindow": "(si discľidi tu unâ nauâ fireastrâ)",
-    "cancel": "Alasã",
-    "moredotdotdot": "Ma multu...",
-    "mytalk": "Zburare-a mea",
-    "navigation": "Navigație",
-    "qbfind": "Caftâ",
-    "qbedit": "Alâxiri",
-    "qbpageoptions": "Aestă frânḑă",
-    "qbmyoptions": "Frânḑili a meali",
-    "vector-action-addsection": "Dimândari nauâ",
-    "vector-view-history": "Veḑ istoricu",
-    "namespaces": "Spațiu di numi",
-    "variants": "Varianti",
-    "tagline": "Di-tu {{SITENAME}}",
-    "help": "Agiutoru",
-    "search": "Câftari",
-    "searchbutton": "Câftari",
-    "go": "Du-vâ",
-    "searcharticle": "Du-vâ",
-    "history_short": "Istoricu",
-    "printableversion": "Verzia ti tipuseare",
-    "permalink": "Ligâturâ permanentâ",
-    "edit": "Alâxire",
-    "delete": "Așcirḑire",
-    "protect": "Apurã",
-    "newpage": "Frânḑâ nauâ",
-    "talkpagelinktext": "Zburari",
-    "talk": "Discusiur",
-    "views": "Videri",
-    "toolbox": "Cutia di hãlate",
-    "otherlanguages": "Pi alte limbe",
-    "jumptonavigation": "Navigatsia",
-    "jumptosearch": "Câftare",
-    "aboutsite": "Tu {{SITENAME}}",
-    "currentevents": "Evenimente di tora",
-    "disclaimers": "Nipricunuschire",
-    "edithelp": "Agiutor ti alãxire",
-    "mainpage": "Prota frânḑâ",
-    "mainpage-description": "Prota frânḑâ",
-    "portal": "Portalu a comunitatiľei",
-    "portal-url": "Proiectu:Portalu a comunitatiľei",
-    "privacy": "Politică di confidențialitate",
-    "youhavenewmessagesmulti": "Aveț năi dimândări pi $1",
-    "editsection": "alâxire",
-    "editold": "Alâxiri",
-    "viewsourceold": "videari izvor",
-    "viewsourcelink": "videari izvor",
-    "editsectionhint": "Alâxire parti: $1",
-    "site-atom-feed": "$1 Atom feed",
-    "red-link-title": "$1 (frânḑa nu easti)",
-    "nstab-main": "Frânḑâ",
-    "nstab-user": "Frânḑâ a utilizatorului",
-    "nstab-special": "Frândzâ specialâ",
-    "nstab-template": "Formatu",
-    "nstab-category": "Categorie",
-    "viewsource": "Videț-u fântânâ",
-    "yourname": "Numa di ufilizitor:",
-    "yourpassword": "Cljao:",
-    "yourpasswordagain": "Bãgats-u cljao iara:",
-    "remembermypassword": "Apurã-u ligãtura-a mea pi compiuterlu aistu (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Ligats-vã",
-    "userlogin": "Ligats-vã / Fãtsets Isape",
-    "logout": "Disligats-vã",
-    "userlogout": "Disligats-vã",
-    "notloggedin": "Nu hits ligats",
-    "createaccount": "Fãtsets Isape",
-    "gotaccountlink": "Ligats-vã",
-    "summary": "Rezime:",
-    "minoredit": "Aistã easte alãxire njicã",
-    "watchthis": "Mutrits-u frãndzã aistã",
-    "savearticle": "Avigljats-u frãndzã",
-    "showpreview": "Spuni u-privideare",
-    "showdiff": "Spuni le-alãxirle",
-    "loginreqlink": "Ligats-vã",
-    "lineno": "Linia $1:",
-    "editundo": "arisire",
-    "searchresults": "Rezultate di câftare",
-    "searchresults-title": "Rezultate di câftare ti \"$1\"",
-    "shown-title": "Vedz $1 {{PLURAL:$1|rezultat|rezultate}} pi frândză",
-    "searchprofile-everything": "Tuti",
-    "searchprofile-project-tooltip": "Câftare ti $1",
-    "search-result-size": "$1 ({{PLURAL:$2|1 zbor|$2 zboarâ}})",
-    "search-section": "(partea $1)",
-    "searchall": "tuti",
-    "preferences": "Alidzerle-a meale",
-    "mypreferences": "Alidzerle-a meale",
-    "searchresultshead": "Caftã",
-    "youremail": "E-mail:",
-    "username": "Numa di ufilizitor:",
-    "recentchanges": "Alâxiri",
-    "diff": "dif",
-    "hist": "ist",
-    "show": "Vedz",
-    "recentchangeslinked": "Alãxiri ligate",
-    "recentchangeslinked-feed": "Alãxiri ligate",
-    "recentchangeslinked-toolbox": "Alâxiri ligate",
-    "upload": "Pitritsets file",
-    "uploadbtn": "Pitritsets file",
-    "uploadnologin": "Nu hits ligats",
-    "filedesc": "Rezime",
-    "watchthisupload": "Mutrits-u frãndzã aistã",
-    "file-anchor-link": "Fișier",
-    "randompage": "Frândză di nipandică",
-    "brokenredirects-edit": "Alãxiri",
-    "brokenredirects-delete": "Ashcirdzire",
-    "nbytes": "$1 {{PLURAL:$1|octet|octeți}}",
-    "newpages-username": "Numa di ufilizitor:",
-    "move": "Tradzets",
-    "movethispage": "Tradzets-u frãndza aistã",
-    "booksources-go": "Du-vã",
-    "allpagessubmit": "Du-vã",
-    "watchlist": "Lista-a mea di videare",
-    "mywatchlist": "Lista-a mea di videare",
-    "watchnologin": "Nu hits ligats",
-    "watch": "Videts",
-    "watchthispage": "Mutrits-u frãndzã aistã",
-    "unwatch": "Azãptãsits videare",
-    "prot_1movedto2": "[[$1]] s-trãdzi tu [[$2]]",
-    "restriction-edit": "Alãxiri",
-    "restriction-move": "Tradzets",
-    "undelete-search-submit": "Caftã",
-    "blanknamespace": "(Prota)",
-    "contributions": "Ufilizitor:Contributsiur",
-    "mycontris": "Contributsiile-a meale",
-    "sp-contributions-submit": "Caftã",
-    "whatlinkshere": "Tsi s-leadze cu aistu",
-    "whatlinkshere-page": "Frândză:",
-    "ipbreason": "Itia:",
-    "ipblocklist-submit": "Caftã",
-    "contribslink": "contribuții",
-    "move-page-legend": "Tradzets-u frãndzã",
-    "movearticle": "Tradzets-u frãndzã:",
-    "move-watch": "Mutrits-u frãndzã aistã",
-    "movepagebtn": "Tradzets-u frãndzã",
-    "movereason": "Itia:",
-    "allmessages": "Dimãndãri systemitse",
-    "tooltip-pt-preferences": "Alidzerle-a meale",
-    "tooltip-pt-logout": "Disligats-vã",
-    "tooltip-search": "Câftare tru {{SITENAME}}",
-    "tooltip-p-logo": "Prota frãndzã",
-    "tooltip-n-mainpage": "Vedz prota frândză",
-    "tooltip-t-specialpages": "Unâ listâ di tuti frândzele",
-    "tooltip-ca-nstab-category": "Veḑ categoria",
-    "ilsubmit": "Caftâ",
-    "imgmultigo": "Du-vã!",
-    "table_pager_limit_submit": "Du-vã",
-    "specialpages": "Frândzâ speciale"
+       "@metadata": {
+               "authors": [
+                       "D'AroemenenZullenNiVergaan",
+                       "Dumitrachi T. Fundu",
+                       "Hakka"
+               ]
+       },
+       "tog-underline": "Subliniadzâ ligâtura:",
+       "tog-hideminor": "Ascundi alâxirili minori tu alâxirile proaspite",
+       "tog-hidepatrolled": "Ascundi alâxirili patrulati tu alâxirile proaspite",
+       "tog-newpageshidepatrolled": "Ascundi frândzâli patrulati di-tu lista di frândzâ noi",
+       "tog-extendwatchlist": "Ntindi lista di articoli avinati ca s-u li vedz toati alâxirili adrate, nu mași pe ațeali ma noi",
+       "tog-usenewrc": "Adunâ alâxirili dupu frândzâ anamisa a alâxiriloru proaspite și a listâľei frândzâlor avinati",
+       "tog-numberheadings": "Numirâ automatu secțiunili",
+       "tog-showtoolbar": "Aratâ bara di halati trâ alâxiri",
+       "tog-editondblclick": "Alâxeaști frândzâli pri-tu click duplo",
+       "tog-editsectiononrightclick": "Activeadzâ alâxirea a secțiuniloru pri-tu click ndreapta pi titlu a secțiunâľei",
+       "tog-watchcreations": "Adavgâ frândzâli pi cari li adar și fișierele pi cari li ncari la lista a ńia di frândzâ avinati",
+       "tog-watchdefault": "Adavgâ frândzâli și fișierili pi cari li alâxescu la lista a ńia di avinari",
+       "tog-watchmoves": "Adavgâ frândzâli și fișierili pi cari li dau numâ noao la lista a ńia di avinari",
+       "tog-watchdeletion": "Adavgâ frândzâli și fișierili pi cari li aștergu la lista a ńia di avinari",
+       "tog-watchrollback": "Adavgâ tu lista a ńia di frândzâ avinati ațeali frândzâ cari li turnai la unâ versiuni ma veacľie",
+       "tog-minordefault": "Simneadzâ di-tu ahurhita toati alâxirili câ suntu minori (ńiți)",
+       "tog-previewontop": "Aratâ previzualizarea disuprâ di câsica di alâxiri",
+       "tog-previewonfirst": "Aratâ previzualizarea la prota alâxiri",
+       "tog-enotifwatchlistpages": "Pitreați-ńi unâ carti electronicâ atumțea anda unâ frândzâ icâ unu fișieru di-tu lista a ńia di frândzâ avinati easti alâxitâ",
+       "tog-enotifusertalkpages": "Pitreați-ńi unâ carti electronicâ anda frândza a ńia di muabeț easti alâxitâ",
+       "tog-enotifminoredits": "Pitreați-ńi unâ carti electronicâ ș-canda frândzâ icâ fișieri ľa alâxiri",
+       "tog-enotifrevealaddr": "Lingușeaști-ńi adresa a ńia di carti electronicâ tu mesagili di noauâ",
+       "tog-shownumberswatching": "Aratâ numiru a utilizatorloru cari ti avinu",
+       "tog-oldsig": "Cundiľeauâ di tora:",
+       "tog-fancysig": "Saidiseaști cundiľeaua ca wikitext (fârâ unâ ligâturâ automatâ)",
+       "tog-uselivepreview": "Ufiliseaști previzualizarea tu chiro realu (experimentalu)",
+       "tog-forceeditsummary": "Dzâ-ńi anda mi agârșescu s-fânirusescu alâxirili",
+       "tog-watchlisthideown": "Ascundi alâxirili a meali la lista a ńia di avinari",
+       "tog-watchlisthidebots": "Ascundi alâxirili a boțloru la lista a ńia di avinari",
+       "tog-watchlisthideminor": "Ascundi alâxirili minori (ńiți) a meali la lista a ńia di avinari",
+       "tog-watchlisthideliu": "Ascundi alâxirili adrati di utilizatori ligaț di-tu lista di frândzâ avinati",
+       "tog-watchlisthideanons": "Ascundi alâxirili adrati di utilizatoriľi anonimi di-tu lista di frândzâ avinati",
+       "tog-watchlisthidepatrolled": "Ascundi alâxirili patrulati di-tu lista di frândzâ avinati",
+       "tog-ccmeonemails": "Voi s-așteptu unâ copie a mesagiloru di carti electronicâ pi cari li pitrecu",
+       "tog-diffonly": "Ascundi conținutlu a frândzei sumu dif",
+       "tog-showhiddencats": "Aratâ categoriľi ascumsi",
+       "tog-norollbackdiff": "Ascundi diferența dupu ți s-toarnâ unâ frândzâ",
+       "tog-useeditwarning": "Dzâ-ńi anda alasu unâ frândzâ fârâ s-li pitrecu alâxirili",
+       "tog-prefershttps": "Ufiliseaști daima unâ conexiuni sigurâ anda hiu ligat(â)",
+       "underline-always": "Totna",
+       "underline-never": "Vârnâoarâ",
+       "underline-default": "Standardulu a themâľei icâ a navigatorlui",
+       "editfont-style": "Soea a fontului tu câsica di alâxiri:",
+       "editfont-default": "Standardulu a navigatorlui",
+       "editfont-monospace": "Fontu dipârtatu isea",
+       "editfont-sansserif": "Fontu fârâ serife",
+       "editfont-serif": "Fontu cu serife",
+       "sunday": "dumânicâ",
+       "monday": "luni",
+       "tuesday": "marțâ",
+       "wednesday": "ńiercuri",
+       "thursday": "gioi",
+       "friday": "viniri",
+       "saturday": "sâmbâtâ",
+       "sun": "dum",
+       "mon": "lun",
+       "tue": "mar",
+       "wed": "ńie",
+       "thu": "gio",
+       "fri": "vin",
+       "sat": "sâm",
+       "january": "Yinaru",
+       "february": "Șcurtu",
+       "march": "Marțu",
+       "april": "Apriiru",
+       "may_long": "Maiu",
+       "june": "Cirișaru",
+       "july": "Alunaru",
+       "august": "Avgustu",
+       "september": "Yizmâciunu",
+       "october": "Sumedru",
+       "november": "Brumaru",
+       "december": "Andreu",
+       "january-gen": "Yinaru",
+       "february-gen": "Șcurtu",
+       "march-gen": "Marțu",
+       "april-gen": "Apriiru",
+       "may-gen": "Maiu",
+       "june-gen": "Cirișaru",
+       "july-gen": "Alunaru",
+       "august-gen": "Avgustu",
+       "september-gen": "Yizmâciunu",
+       "october-gen": "Sumedru",
+       "november-gen": "Brumaru",
+       "december-gen": "Andreu",
+       "jan": "Yin",
+       "feb": "Șcur",
+       "mar": "Mar",
+       "apr": "Apr",
+       "may": "Mai",
+       "jun": "Cir",
+       "jul": "Alun",
+       "aug": "Avg",
+       "sep": "Yiz",
+       "oct": "Sum",
+       "nov": "Brum",
+       "dec": "Andr",
+       "january-date": "$1-li di Yinaru",
+       "february-date": "$1-li di Șcurtu",
+       "march-date": "$1-li di Marțu",
+       "april-date": "$1-li di Apriiru",
+       "may-date": "$1-li di Marțu",
+       "june-date": "$1-li di Cirișaru",
+       "july-date": "$1-li di Alunaru",
+       "august-date": "$1-li di Avgustu",
+       "september-date": "$1-li di Yizmâciunu",
+       "october-date": "$1-li di Sumedru",
+       "november-date": "$1-li di Brumaru",
+       "december-date": "$1-li di Andreu",
+       "pagecategories": "{{PLURAL:$1|Categorie|Categorii}}",
+       "category_header": "Frândzâ tu categoria \"$1\"",
+       "subcategories": "Subcategorii",
+       "category-media-header": "Media tu categoria \"$1\"",
+       "category-empty": "<em>Aestâ categorie nu ari tora nițiunu articolu icâ fișieru media.</em>",
+       "hidden-categories": "{{PLURAL:$1|Categorie ascumsâ|Categorii ascumsi}}",
+       "hidden-category-category": "Categorii ascumsi",
+       "category-subcat-count": "{{PLURAL:$2|Categoria conține mași subcategoria aestâ.|Categoria conțini {{PLURAL:$1|aestâ subcategorie|aesti $1 subcategorii}}, di-tu $2.}}",
+       "category-subcat-count-limited": "Această categorie conțini {{PLURAL:$1|subcategorie|$1 subcategorii}}.",
+       "listingcontinuesabbrev": "cont.",
+       "index-category": "Frândzâ indexati",
+       "noindex-category": "Frândzâ neindexati",
+       "broken-file-category": "Frândzâ cu ligâturi invalidi câtră fișieri",
+       "about": "Trâ aestâ",
+       "article": "Articolu",
+       "newwindow": "(si discľidi tu unâ noauâ fireastrâ)",
+       "cancel": "Alasâ",
+       "moredotdotdot": "Ma multu…",
+       "morenotlisted": "Aestâ listâ nu easti completâ (ntreagâ).",
+       "mypage": "Frândzâ",
+       "mytalk": "Muabeț",
+       "anontalk": "Muabeti trâ aestâ adresâ di IP",
+       "navigation": "Navigari",
+       "and": "&#32;și",
+       "qbfind": "Caftâ",
+       "qbbrowse": "Calcâ",
+       "qbedit": "Alâxiri",
+       "qbpageoptions": "Aestâ frândzâ",
+       "qbmyoptions": "Frândzâli a meali",
+       "faq": "Ntribări frecventi",
+       "faqpage": "Proectu:Ntribări frecventi",
+       "actions": "Acțiuni",
+       "namespaces": "Spațiu di numi",
+       "variants": "Varianti",
+       "navigation-heading": "Meniu di navigari",
+       "errorpagetitle": "Eroari (alatus)",
+       "returnto": "Toarnâ-ti $1.",
+       "tagline": "Di-tu {{SITENAME}}",
+       "help": "Agiutoru",
+       "search": "Caftâ",
+       "searchbutton": "Caftâ",
+       "go": "Du-ti",
+       "searcharticle": "Du-ti",
+       "history": "Isturia a frândzâľei",
+       "history_short": "Isturie",
+       "updatedmarker": "alâxitu di canda yinii tu soni",
+       "printableversion": "Versiuni ti tipuseari",
+       "permalink": "Ligâturâ permanentâ",
+       "print": "Tipuseari",
+       "view": "Videari",
+       "view-foreign": "Vedz la $1",
+       "edit": "Alâxire",
+       "edit-local": "Alâxeaști descrierea localâ",
+       "delete": "Așcirḑire",
+       "deletethispage": "Așteardzi frândza",
+       "undeletethispage": "Aflâ frundza aștearsâ",
+       "undelete_short": "Aflâ {{PLURAL:$1|unâ alâxiri aștearsâ|a $1 alâxiri aștearsi|a $1 di alâxiri aștearsi}}",
+       "viewdeleted_short": "Vedz {{PLURAL:$1|unâ alâxiri aștearsâ|$1 (di) alâxiri aștearsi}}",
+       "protect": "Apârâ",
+       "protect_change": "alâxeaști",
+       "protectthispage": "Protejați aestâ frândzâ",
+       "unprotect": "Alâxeaști protecția",
+       "unprotectthispage": "Alâxeaști nivellu di protejari a frândzâľei",
+       "newpage": "Frânḑâ nauâ",
+       "talkpage": "Muabeti trâ aestâ frândzâ",
+       "talkpagelinktext": "Zburari",
+       "specialpage": "Frândzâ specialâ",
+       "personaltools": "Halatili a meali",
+       "articlepage": "Vedz articolu",
+       "talk": "Muabeț",
+       "views": "Videri",
+       "toolbox": "Hâlati",
+       "userpage": "Vedz frândza a utilizatorlui",
+       "projectpage": "Vedz frândza a proectului",
+       "imagepage": "Vedz frândza fișierlui",
+       "mediawikipage": "Vedz frândza dimândăriľei",
+       "templatepage": "Vedz frândza formatlui",
+       "viewhelppage": "Vedz frânzda di agiutoru",
+       "categorypage": "Vedz-u frândza categoriľei",
+       "viewtalkpage": "Vedz muabetea",
+       "otherlanguages": "Pi alanti limbi",
+       "redirectedfrom": "(yinitâ di la $1)",
+       "redirectpagesub": "Frândzâ di redirecționari",
+       "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â",
+       "jumpto": "Ansari la:",
+       "jumptonavigation": "navigari",
+       "jumptosearch": "câftari",
+       "view-pool-error": "Ti jali serverili a noastri suntu xanaufilisiti tu aestu chiro.\nCama mulțâ utilizatori câtâpâtsescu s-veadâ aestâ frândzâ.\nVâ pâlâcârsimu s-așteptați unu momentu nainti s-ncârcați aestâ frândzâ diznou.\n\n$1",
+       "generic-pool-error": "Ti jali serverili a noastri suntu xanaufilisiti tu aestu chiro.\nCama mulțâ utilizatori câtâpâtsescu s-veadâ aestâ resursâ.\nVâ pâlâcârsimu s-așteptați unu momentu nainti s-ncârcați aestâ resursâ diznou.",
+       "pool-timeout": "Chirolu trâ aștiptăriľei trâ blocari (ncľideari) d-dusi",
+       "pool-queuefull": "Coada di aștiptari easti mplinâ",
+       "pool-errorunknown": "Eroari (alatusu) nicunuscutâ",
+       "pool-servererror": "Serviciulu di contorizari a rezervâľei nu ma easti disponibilu ($1).",
+       "aboutsite": "Trâ {{SITENAME}}",
+       "aboutpage": "Project:Trâ aestâ",
+       "copyright": "Conținutlu easti disponibilu sum $1, fârâ chirolu tu cari s-specificâ altâ.",
+       "copyrightpage": "{{ns:project}}:Ndirepturi di autoru",
+       "currentevents": "Evenimenti di tora",
+       "currentevents-url": "Project:Cafine",
+       "disclaimers": "Termeni",
+       "disclaimerpage": "Project:Termeni",
+       "edithelp": "Agiutoru trâ alâxiri",
+       "mainpage": "Prota frândzâ",
+       "mainpage-description": "Prota frândzâ",
+       "policy-url": "Project:Politicâ",
+       "portal": "Portalu a comunitatiľei",
+       "portal-url": "Project:Portalu a comunitatiľei",
+       "privacy": "Politicâ di confidențialitati",
+       "privacypage": "Project:Politicâ di confidențialitati",
+       "badaccess": "Eroare (alatusu) permisiuni",
+       "badaccess-group0": "Execuția a acțiuniľei țiruti nu easti permisâ.",
+       "badaccess-groups": "Acțiunea țerută easte mași trâ utilizatorii di-tu {{PLURAL:$2|gruplu|unlu di-tu grupurili}}: $1.",
+       "versionrequired": "Caftâ versiunea $1 MediaWiki",
+       "versionrequiredtext": "Versiunea $1 MediWiki easti câftatâ trâ aestâ frândzâ.\nCaftâ [[Special:Version|versiunea frândzâľei]].",
+       "ok": "Ghini",
+       "retrievedfrom": "Yinitâ di la „$1”",
+       "youhavenewmessages": "Ai $1 ($2).",
+       "youhavenewmessagesfromusers": "Ai $1 di la {{PLURAL:$3|unu altu utilizatoru|$3 utilizatori}} ($2).",
+       "youhavenewmessagesmanyusers": "Ai $1 di la cama mulțâ utilizatori ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|unâ dimândari noao|999=dimândări noi}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|alâxirea di-tu soni|999=alâxirili proaspiti}}",
+       "youhavenewmessagesmulti": "Aveț dimândări noi la $1",
+       "editsection": "alâxire",
+       "editold": "alâxire",
+       "viewsourceold": "vez-u textu",
+       "editlink": "alâxire",
+       "viewsourcelink": "vez-u textu",
+       "editsectionhint": "Alâxeaști secțiunea: $1",
+       "toc": "Conținutu",
+       "showtoc": "aratâ",
+       "hidetoc": "ascundi",
+       "collapsible-collapse": "Apreadunâ",
+       "collapsible-expand": "Tindi",
+       "confirmable-confirm": "Hii sigur{{GENDER:$1||â}}?",
+       "confirmable-yes": "E",
+       "confirmable-no": "Nu",
+       "thisisdeleted": "Vedz icâ adu napoea $1?",
+       "viewdeleted": "Vedz $1?",
+       "restorelink": "Vedz {{PLURAL:$1|unâ alâxiri aștearsâ|$1 (di) alâxiri aștearsi}}",
+       "site-rss-feed": "$1 Abonari RSS",
+       "site-atom-feed": "$1 Abonari Atomu",
+       "page-rss-feed": "„$1” Abonari RSS",
+       "page-atom-feed": "$1 Abonari Atomu",
+       "red-link-title": "$1 (frândza nu easti)",
+       "sort-descending": "Aratâ di la nai ma marli",
+       "sort-ascending": "Aratâ di la nai ma ńițli",
+       "nstab-main": "Frândzâ",
+       "nstab-user": "Frândzâ di utilizatoru",
+       "nstab-media": "Frândzâ media",
+       "nstab-special": "Frândzâ specialâ",
+       "nstab-project": "Proectu",
+       "nstab-image": "Fișieru",
+       "nstab-mediawiki": "Dimândari",
+       "nstab-template": "Formatu",
+       "nstab-help": "Agiutoru",
+       "nstab-category": "Categorie",
+       "nosuchaction": "Aeastâ acțiuni nu easti",
+       "databaseerror-error": "Eroari (alutusu): $1",
+       "readonly": "Baza di dati easti blocatâ (ncľisâ) la nyrâpseari",
+       "viewsource": "Vez-u textu",
+       "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:",
+       "yourpasswordagain": "Bagâ-u cľeae diznou:",
+       "remembermypassword": "Țâni minti ligâtura a mea pi browserlu aestu (cheari dupu $1 {{PLURAL:$1|dzuuâ|dzâli}})",
+       "login": "Leagâ-ti",
+       "nav-login-createaccount": "Leagâ-ti / Fă contu (isape)",
+       "userlogin": "Leagâ-ti / Fă contu (isape)",
+       "userloginnocreate": "Leagâ-ti",
+       "logout": "Dizleagâ-ti",
+       "userlogout": "Dizleagâ-ti",
+       "notloggedin": "Nu hii ligatu",
+       "userlogin-noaccount": "N-ai nicâ contu (isape)?",
+       "nologin": "N-ai nicâ contu (isape)? $1.",
+       "nologinlink": "Fă unu utilizatoru a tău tora",
+       "createaccount": "Fă contu (isape)",
+       "gotaccountlink": "Leagâ-ti",
+       "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â",
+       "createacct-another-email-ph": "Bagâ-u adresa di carti electronicâ",
+       "createacct-realname": "Numa realâ (opționalu)",
+       "createaccountreason": "Furńie:",
+       "createacct-reason": "Furńie",
+       "summary": "Rezumatu:",
+       "minoredit": "Aestâ easti unâ alâxiri minorâ (ńicâ)",
+       "watchthis": "Mutrea-u frândzâ aestâ",
+       "savearticle": "Avigľea-u frândzâ",
+       "showpreview": "Previzualizare",
+       "showdiff": "Aratâ alâxirile",
+       "loginreqlink": "leagâ-ti",
+       "lineno": "Linia $1:",
+       "editundo": "turnari",
+       "searchresults": "Rezultatili câftăriľei",
+       "searchresults-title": "Rezultatili câftăriľei trâ „$1”",
+       "shown-title": "Aratâ $1 {{PLURAL:$1|rezultatu|rezultati}} pi frândzâ",
+       "searchprofile-everything": "Tutu",
+       "search-result-size": "$1 ({{PLURAL:$2|1 zboru|$2 zboarâ}})",
+       "search-section": "(secțiunea $1)",
+       "searchall": "tuti",
+       "preferences": "Prutimisiri",
+       "mypreferences": "Prutimisiri",
+       "searchresultshead": "Caftâ",
+       "youremail": "Adresâ di carti electronicâ:",
+       "username": "{{GENDER:$1|Numa di utilizatoru}}:",
+       "recentchanges": "Alâxiri",
+       "diff": "dif",
+       "hist": "ist",
+       "show": "Vedz",
+       "recentchangeslinked": "Alâxiri ligate",
+       "recentchangeslinked-feed": "Alâxiri ligate",
+       "recentchangeslinked-toolbox": "Alâxiri ligate",
+       "upload": "Pitreați fișieru",
+       "uploadbtn": "Pitreați fișieru",
+       "uploadnologin": "Nu hii ligatu",
+       "filedesc": "Rezumatu:",
+       "watchthisupload": "Mutreaști fișierlu aestu",
+       "file-anchor-link": "Fișieru",
+       "randompage": "Frândzâ di nipandicâ",
+       "brokenredirects-edit": "alâxire",
+       "brokenredirects-delete": "așteardziri",
+       "nbytes": "$1 {{PLURAL:$1|octetu|octeți}}",
+       "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",
+       "watchnologin": "Nu hii ligatu",
+       "watch": "Avinari",
+       "watchthispage": "Mutrea-u frândzâ aestâ",
+       "unwatch": "Scoati di-tu lista di avinari",
+       "prot_1movedto2": "[[$1]] s-mutâ tu [[$2]]",
+       "restriction-edit": "Alâxire",
+       "restriction-move": "Mutari",
+       "undelete-search-submit": "Caftâ",
+       "blanknamespace": "(Prota)",
+       "contributions": "Contribuții {{GENDER:$1|utilizatoru}}",
+       "mycontris": "Contribuții",
+       "sp-contributions-submit": "Caftâ",
+       "whatlinkshere": "Ți s-leadzi cu aestu",
+       "whatlinkshere-page": "Frândzâ:",
+       "ipbreason": "Furńie:",
+       "ipblocklist-submit": "Caftâ",
+       "contribslink": "contribuții",
+       "move-page-legend": "Mutari frândzâ",
+       "movearticle": "Mutari frândzâ",
+       "move-watch": "Mutrea-u frândzâ aestâ",
+       "movepagebtn": "Mutari frândzâ",
+       "movereason": "Furńie:",
+       "allmessages": "Mesagi di systemu",
+       "tooltip-pt-preferences": "Prutimisirili a meali",
+       "tooltip-pt-logout": "Dizleagâ-ti",
+       "tooltip-search": "Câftari tu {{SITENAME}}",
+       "tooltip-p-logo": "Vedz prota frândzâ",
+       "tooltip-n-mainpage": "Vedz prota frândzâ",
+       "tooltip-t-specialpages": "Unâ listâ cu toati frândzili speciali (di soe)",
+       "tooltip-ca-nstab-category": "Vedz-u categoria",
+       "ilsubmit": "Caftâ",
+       "imgmultigo": "Du-ti!",
+       "table_pager_limit_submit": "Du-ti",
+       "specialpages": "Frândzâ speciali"
 }
index c2d4562..9711798 100644 (file)
        "talkpagelinktext": "सम्भाषणम्",
        "specialpage": "विशेषपृष्ठम्",
        "personaltools": "वैयक्तिकोपकरणानि",
-       "postcomment": "नवीनः विभागः",
        "articlepage": "लेखः दृश्यताम्",
        "talk": "सम्भाषणम्",
        "views": "मतानि",
        "externaldberror": "दत्तांशे प्रामाणिकताविषयकः (authentication database) दोषः  स्यात् । अथवा स्वस्य बाह्यसदस्यतायां  (external account) परिवर्तनं कर्तुम् अनुमतिः न भवेत् ।",
        "login": "प्रविश्यताम्",
        "nav-login-createaccount": "प्रविश्यताम् / सदस्यता प्राप्यताम्",
-       "loginprompt": "{{SITENAME}} इत्यत्र प्रवेष्टुं ज्ञापकानि (cookies)  समर्थीकरणीयानि ।",
        "userlogin": "प्रविश्यताम् / सदस्यता प्राप्यताम्",
        "userloginnocreate": "प्रविश्यताम्",
        "logout": "निर्गमनम्",
        "searchprofile-advanced-tooltip": "नामाकाशेषु अन्विष्यताम्",
        "search-result-size": "$1 ({{PLURAL:$2|1 शब्दः|$2 शब्दाः}})",
        "search-result-category-size": "{{PLURAL:$1|1 योजकः|$1 योजकाः}} ({{PLURAL:$2|1 उपवर्गः|$2 उपवर्गाः}}, {{PLURAL:$3|1 सञ्चिका|$3 सञ्चिकाः}})",
-       "search-result-score": "सम्बन्धः : $1%",
        "search-redirect": "($1 तः अनुप्रेषितम्)",
        "search-section": "(विभागः $1)",
        "search-file-match": "(सञ्चिकापाठेन सह मेलः अस्ति)",
        "uploadwarning": "उत्तारणस्य पूर्वसूचना ।",
        "uploadwarning-text": "अधो दत्तं सञ्चिकाविवरणं संस्कृत्य पुनः यतताम् ।",
        "savefile": "सञ्चिकां संरक्षतु ।",
-       "uploadedimage": "\"[[$1]]\" उपारोहितानि (uploaded)",
-       "overwroteimage": "\"[[$1]]\" इत्यस्य नूतनावतरणम् उत्तारयतु ।",
        "uploaddisabled": "सक्रियम् उत्तारयतु ।",
        "copyuploaddisabled": "निष्क्रियतः यु.आर्.एल् तः उत्तारयतु  ।",
        "uploaddisabledtext": "उत्तारितसञ्चिकाः निष्क्रियाः ।",
        "watchlist-details": "सम्भाषणपृष्ठानि विहाय {{PLURAL:$1|$1 पृष्ठं|$1 पृष्ठानि}} भवतः/भवत्याः अवेक्षणाऽऽवलिः ।",
        "wlheader-enotif": "विद्युन्मानपत्रस्य सूचनाः सक्रियाः ।",
        "wlheader-showupdated": "भवतः सन्दर्शनस्य पश्चात् परिवर्तितानि पुटानि स्थूलाक्षरैः निर्दिष्टानि ।",
+       "wlnote": "अधस्तात् {{PLURAL:$1|'''1''' परिवर्तनमस्ति|अन्तिमानि '''$1''' परिवर्तनानि सन्ति}},{{PLURAL:$2|गते दिवसे|'''$2''' गतेषु दिवसेषु}}, , $3, $4. इति",
        "wlshowlast": "अन्तिमाः $1 होराः, अन्तिमानि $2 दिनानि $3 दृश्यन्ताम्",
        "watchlist-options": "अवेक्षणाऽऽवलेः विकल्पाः",
        "watching": "निरीक्षते...",
        "duplicate-defaultsort": "'''पूर्वसूचना''' \"$1\" इति पुरातनं मूलक्रमाङ्कनकुड्मलं विहाय  \"$2\" इति नवीनं मूलक्रमाङ्कनकुण्डलत्वेन स्वयमेव नयति एतत् ।",
        "version": "आवृत्तिः",
        "version-extensions": "अनुस्थापितानि विस्तरणानि ।",
+       "version-skins": "छादन",
        "version-specialpages": "विशेषपृष्ठानि",
        "version-parserhooks": "विन्यासस्य आलम्बः ।",
        "version-variables": "भङ्गुरम्",
        "version-antispam": "अनिष्टस्य अवरोधः ।",
-       "version-skins": "छादन",
        "version-other": "अन्यत्",
        "version-mediahandlers": "माध्यनिर्वाहकाः ।",
        "version-hooks": "आलम्बाः ।",
index 7ffcdeb..415c1c6 100644 (file)
        "talkpagelinktext": "Ырытыы",
        "specialpage": "Анал сирэй",
        "personaltools": "Тус бэйэ туттар тэриллэрэ",
-       "postcomment": "Саҥа түһүмэх",
        "articlepage": "Ыстатыйаны көр",
        "talk": "Ырытыы",
        "views": "Көрүү",
        "externaldberror": "Тас киирии билиитин олоҕун сыыһата буолла, эбэтэр тас киирии билииҥ олоҕун саҥардар кыаҕыҥ суох.",
        "login": "Киир",
        "nav-login-createaccount": "Киир / бэлиэтэн",
-       "loginprompt": "{{SITENAME}} саайтыгар киирэргэ «cookies» туттары көҥүллээ.",
        "userlogin": "Киир / бэлиэтэн",
        "userloginnocreate": "Киир",
        "logout": "Тахсыы",
        "searchprofile-advanced-tooltip": "Этиллибит аат далларыгар көрдөөһүн",
        "search-result-size": "$1 ({{PLURAL:$2|1 тыл|$2 тыл}})",
        "search-result-category-size": "{{PLURAL:$1|$1 элэмиэн|$1 элэмиэннэр}} ({{PLURAL:$2|$2 субкатегория|$2 субкатегориялар}}, {{PLURAL:$3|$3 билэ|$3 билэлэр}})",
-       "search-result-score": "Релевантноһа: $1%",
        "search-redirect": "(утаарыы $1)",
        "search-section": "($1 сиэксийэ)",
        "search-file-match": "(билэ иһинээҕитин кытта сөп түбэһэр)",
        "uploadwarning": "Сэрэтии",
        "uploadwarning-text": "Бука диэн аллара баар билэ туһунан суругу уларыт уонна өссө хатылаа.",
        "savefile": "Билэни суруттарыы",
-       "uploadedimage": "суруттарылынна \"[[$1]]\"",
-       "overwroteimage": "\"[[$1]]\" киллэриллибит саҥа торума",
        "uploaddisabled": "Суруттарыы бобуллубут",
        "copyuploaddisabled": "URL көмөтүнэн хачайдыыр кыах араарыллыбыт.",
        "uploaddisabledtext": "Билэлэри суруттарар көҥүллэммэт.",
        "watchlist-details": "Ырытыы сирэйдэрин аахпатахха {{PLURAL:$1|$1 сирэйи кэтиигин|$1 сирэй эн кэтэбилгэр сылдьар}}.",
        "wlheader-enotif": "Эл. почтанан биллэрии холбоммут.",
        "wlheader-showupdated": "Бүтэһик киирииҥ кэннэ уларыйбыт сирэйдэр '''модьу''' бичигинэн бэлиэтэннилэр.",
-       "wlnote2": "Манна {{PLURAL:$1|кэнники чааска|кэнники <strong>$1</strong> чааска}} оҥоһуллубут уларытыылар көстөллөр, $2 $3.",
+       "wlnote": "Манна кэлиҥҥи {{PLURAL:$2|чаас|'''$2''' чаас}} иһигэр оҥоһуллубут бүтэһик $1 уларытыы көрдөрүлүннэ, бу кэмҥэ туругунан $3 $4.",
        "wlshowlast": "бүтэһик $1 чааска $2 күҥҥэ $3 көрдөр",
        "watchlist-options": "Кэтээн көрүү туруоруутун уларытыы",
        "watching": "Кэтээ...",
        "duplicate-defaultsort": "Болҕой: Наардааһын «$2» күлүүһэ урукку «$1» күлүүһү сабар (Ключ сортировки переопределяет прежний ключ).",
        "version": "MediaWiki барыла (биэрсийэтэ)",
        "version-extensions": "Туруоруллубут расширениялар",
+       "version-skins": "Тас көстүү барыллара",
        "version-specialpages": "Аналлаах сирэйдэр",
        "version-parserhooks": "синтаксическай анализатор перехватчиктара",
        "version-variables": "Уларыйар дааннайдар (переменнайдар)",
        "version-antispam": "Спаамтан көмүскэнии",
-       "version-skins": "Тас көстүү барыллара",
        "version-other": "Атын",
        "version-mediahandlers": "Медиа уларытааччылар",
        "version-hooks": "Перехватчиктар",
index dc1661a..0811190 100644 (file)
        "talkpagelinktext": "Ro̠ṛme",
        "specialpage": "Osokayteaḱ sakam",
        "personaltools": "Nijaḱ jontropạti",
-       "postcomment": "Nãwã pahaṭa",
        "articlepage": "Menaḱ sakam uduḱme",
        "talk": "Galmarao",
        "views": "Ñel koyoḱ",
        "externaldberror": "Hoe daṛeyaḱa jahan bahre reaḱ jacaeaḱ ḍaṭabes vul hoeakana se amaḱ bahre reaḱ ekaunṭ do nahaḱ halot aguire ạidạri bạnuḱa.",
        "login": "bolok' duar",
        "nav-login-createaccount": "Boloḱ́ duạr / ekaunt tearme",
-       "loginprompt": "{{SITENAME}}-re boloḱem meneḱ khan amaḱ sendrare kuki kạmi ehoṕ hoyoḱtama.",
        "userlogin": "Bhitri bolon / ekaunṭ tear",
        "userloginnocreate": "Bhitri bolo",
        "logout": "Bahre oḍoń",
        "filedesc": "Guṭ katha",
        "fileuploadsummary": "Guṭ katha",
        "savefile": "Rẽt rukhiyaymẽ",
-       "uploadedimage": "\"[[$1]]\" rakaṕ huyena",
        "upload-description": "Rẽt reaḱ jạṛ",
        "watchthisupload": "Noa rẽt ńelmẽ",
        "upload-file-error": "Bhitri reaḱ bhul",
index a1ce286..12e911f 100644 (file)
@@ -8,11 +8,12 @@
                        "לערי ריינהארט",
                        "아라",
                        "Via maxima",
-                       "Uharteko"
+                       "Uharteko",
+                       "Taxandru"
                ]
        },
        "tog-underline": "Sutalìnia sos ligàmenes",
-       "tog-hideminor": "Cua sos càmbios minores in sa pàgina de sos ùrtimas càmbios",
+       "tog-hideminor": "Cua is acontzos minores in sa pàgina de is ùrtimas mudàntzias",
        "tog-hidepatrolled": "Cua sos càmbios verificados in sos ù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",
        "retrievedfrom": "Bogadu dae  \"$1\"",
        "youhavenewmessages": "Tenes $1 ($2).",
        "youhavenewmessagesmanyusers": "Tenes $1 dae utentes ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|unu messàggiu nou|999=messàggios noos}}",
        "youhavenewmessagesmulti": "Tenes messàgios noos in $1",
        "editsection": "càmbia",
        "editold": "càmbia",
        "hidetoc": "cua",
        "collapsible-collapse": "Serra e istringhe",
        "collapsible-expand": "Aberi",
+       "confirmable-yes": "Eja",
+       "confirmable-no": "No",
        "thisisdeleted": "Càstiare o recuperare $1?",
        "viewdeleted": "Vista $1?",
        "restorelink": "{{PLURAL:$1|unu càmbiu burradu|$1 càmbios burrados}}",
        "nospecialpagetext": "<strong>As pedidu una pàgina ispetziale non vàlida.</strong>\n\nUna lista de pàginas ispetziales vàlidas l'agatas in [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Faddina",
        "databaseerror": "Faddina de sa base de datos",
+       "databaseerror-function": "Funtzione: $1",
        "readonly": "Base de datos blocada",
        "enterlockreason": "Inserta su motivu de su blocu, ispetzifichende su momentu probàbile chi su blocu at a agabbare",
        "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",
        "badtitle": "Tìtulu malu",
        "badtitletext": "Su tìtulu de sa pàgina ch'as pediu est bùidu, isballiau, o iscritu in is cullegamentus inter-wiki in manera non currègia o cun caràteres no amìtius.",
        "viewsource": "Càstia testu codificadu",
+       "viewsource-title": "Càstia sa mitza de $1",
        "actionthrottled": "Atzione rimandada",
        "namespaceprotected": "Non tenes su permissu de acontzare is pàginas in su nùmene-lugu '''$1'''.",
        "ns-specialprotected": "Is pàginas ispetziales non podent èssere acontzadas.",
        "exception-nologin": "Non ses intrau",
        "virus-scanfailed": "scansione faddida (còdixe $1)",
        "virus-unknownscanner": "antivirus disconnotu:",
-       "logouttext": "'''As acabadu sa sessione.'''\n\nImmoe podes sighire a impreare {{SITENAME}} in forma anònima, o ti podes <span class='plainlinks'>[$1 identificare torra]</span> comente su de prima o comente usuàriu diferente.\nTene contu ca is pàginas ki sunt giai abertas in àteras bentanas podent sighire a pàrrer comente cando fias identificadu, fintzas a cando non ddas renfriscas.",
+       "logouttext": "<strong>As acabadu sa sessione.</strong>\n\nTene contu ca is pàginas ki sunt giai abertas in àteras bentanas podent sighire a pàrrer comente cando fias identificadu, fintzas a cando non ddas renfriscas dae su browser tuo.",
        "yourname": "Nùmene utente",
+       "userlogin-yourname": "Nùmene usuàriu",
+       "userlogin-yourname-ph": "Inserta su nùmene usuàriu tuo",
+       "createacct-another-username-ph": "Inserta su nùmene usuàriu:",
        "yourpassword": "Paràula de òrdine:",
+       "userlogin-yourpassword": "Password",
+       "userlogin-yourpassword-ph": "Inserta sa password tua",
+       "createacct-yourpassword-ph": "Inserta una password",
        "yourpasswordagain": "Repiti sa paràula de òrdine:",
+       "createacct-yourpasswordagain": "Cunfirma sa password",
+       "createacct-yourpasswordagain-ph": "Inserta sa password torra",
        "remembermypassword": "Ammenta sa paràula de òrdine in custu carculadore (pro unu màssimu de $1 {{PLURAL:$1|die|dies}})",
        "yourdomainname": "Ispetzìfica su domìniu",
        "login": "Intra",
        "createaccount": "Crea contu",
        "gotaccount": "Tenes giai unu contu? $1.",
        "gotaccountlink": "Identìfica·ti",
-       "createaccountmail": "via e-mail",
+       "createacct-emailrequired": "Indirutzu Email",
+       "createaccountmail": "Imprea una password a sorte e ispedidda a su indiritzu email ispetzificadu",
        "createaccountreason": "Motivu:",
+       "createacct-reason": "Motivu",
+       "createacct-benefit-body1": "{{PLURAL:$1|acontzu|acontzos}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|pàgina|pàginas}}",
        "badretype": "Sas paràulas de òrdine chi as insertadu non currispondent.",
        "userexists": "Su nùmene usuàriu insertadu est giai impreadu.\nSèbera unu nùmene diferente.",
        "loginerror": "Faddina de identificatzione",
        "wrongpasswordempty": "No as iscritu sa paràula de òrdine.\nProva torra.",
        "passwordtooshort": "Sas paràulas de òrdine devent tènnere a su mancu {{PLURAL:$1|1 caràtere|$1 caràteres}}.",
        "password-name-match": "Sa paràula de òrdine tua devet èssere diferente dae su nùmene utente tuo.",
-       "mailmypassword": "Ispedi una password noa a s'indiritzu e-mail miu",
+       "mailmypassword": "Resetta sa password",
        "passwordremindertitle": "Servìtziu Password Reminder di {{SITENAME}}",
        "passwordremindertext": "Calicunu (probabilmenti tue, cun s'indiritzu IP $1) at pediu de arritziri una password noa pro intrare a {{SITENAME}} ($4).\nUna password temporanea pro s'usuàriu \"$2\" est istada impostada a \"$3\".\nChi custu fiat ne is intentziones tuas, depis intrare (log in) e scioberari una password noa.\nSa password temporanea tua at a iscadiri in {{PLURAL:$5|una die|$5 dies}}.\n\nChi non ses istadu a pediri sa password, o chi as torrau a agatare sa password torra e non da depis cambiari prus, non cunsideras custu messagiu e sighi a impreare sa password beccia.",
        "noemail": "Peruna post.el. resurtat registrada pro s'utente \"$1\".",
        "emailauthenticated": "S'indiritzu e-mail tuo est istadu autenticau su $2 a is $3.",
        "emailconfirmlink": "Cunfirma s'indiritzu e-mail tuo",
        "accountcreated": "Contu creadu",
-       "accountcreatedtext": "S'account usuàriu pro $1 est stadu creadu.",
+       "accountcreatedtext": "S'account usuàriu pro [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) est stadu creadu.",
        "createaccount-title": "Creatzione de unu contu pro {{SITENAME}}",
        "loginlanguagelabel": "Limba: $1",
        "createacct-another-realname-tip": "Su nomini beru pois fai de mancu de ddu ponni.\nSi sceberas de du ponni, at a essi imperau po arreconnosci a tui su traballu tuu.",
        "newpassword": "Paràula de òrdine noa:",
        "retypenew": "Torra a iscrìere sa paràula de òrdine noa:",
        "resetpass_submit": "Càmbia sa paràula de òrdine e identìfica·ti",
-       "resetpass_forbidden": "Non faghet a cambiare sas paràulas de òrdine",
-       "resetpass-no-info": "Deves èssere identificadu pro abèrrere custa pàgina deretu.",
-       "resetpass-submit-loggedin": "Càmbia paràula de òrdine",
+       "resetpass_forbidden": "Non faghet a cambiare sa password",
+       "resetpass-no-info": "Depes èsser identificadu pro abèrrer custa pàgina deretu.",
+       "resetpass-submit-loggedin": "Càmbia password",
        "resetpass-submit-cancel": "Burra",
-       "resetpass-temp-password": "Paràula de òrdine temporànea:",
+       "resetpass-temp-password": "Password temporànea:",
+       "passwordreset": "Reseta sa password",
+       "passwordreset-legend": "Reseta sa password",
+       "passwordreset-username": "Nùmene usuàriu",
+       "passwordreset-email": "Indiritzu email:",
+       "passwordreset-emailtitle": "Particulares de s'usuàriu in {{SITENAME}}",
+       "changeemail": "Càmbia indiritzu email",
+       "changeemail-oldemail": "Indiritzu email atuale:",
+       "changeemail-newemail": "Indiritzu email nou:",
+       "changeemail-none": "(nudda)",
+       "changeemail-password": "Sa password tua pro {{SITENAME}}:",
+       "changeemail-submit": "Càmbia email",
+       "changeemail-cancel": "Annudda",
+       "resettokens": "Reseta tokens",
        "bold_sample": "Testu Grassu",
        "bold_tip": "Testu Grassu",
        "italic_sample": "Testu Cursivu",
        "link_sample": "Tìtulu ligàmene",
        "link_tip": "Ligàmene internu",
        "extlink_sample": "http://www.example.com tìtulu de su ligàmene",
-       "extlink_tip": "Ligàmene esternu (ammenta su prefissu http://)",
+       "extlink_tip": "Ligàmene a foras (amenta su prefissu http://)",
        "headline_sample": "Testu de su tìtulu",
        "headline_tip": "Tìtulu de su segundu livellu",
        "nowiki_sample": "Inserta su testu non-formatadu inoghe",
        "image_sample": "Esèmpiu.jpg",
        "image_tip": "Incòrpora una pintura",
        "media_sample": "Esèmpiu.ogg",
-       "media_tip": "Ligàmene a unu documentu",
+       "media_tip": "Ligàmene a unu file multimediale",
        "sig_tip": "Firma cun data e ora",
        "hr_tip": "Lìnia orizontale (de impreare cun critèriu)",
        "summary": "Ogetu:",
        "subject": "Tema/tìtulu:",
-       "minoredit": "Custu est unu càmbiu minore:",
+       "minoredit": "Custu est unu càmbiu minore",
        "watchthis": "Pone custa pàgina in sa watchlist mea",
        "savearticle": "Sarva sa pàgina",
-       "preview": "Anteprima",
-       "showpreview": "Ammustra s'anteprima",
-       "showdiff": "Ammustra sos càmbios",
+       "preview": "Antiprima",
+       "showpreview": "Amosta s'antiprima",
+       "showdiff": "Amosta is càmbios",
        "anoneditwarning": "'''Dae cara:''' Non ses identificadu (log in).\nS'indiritzu IP tuo at a èssere registradu in s'istòria de custa pàgina.",
        "anonpreviewwarning": "''Non ses identificadu. Sarvende s'indiritzu IP tuo at a èssere registradu in s'istòria de sa pàgina.''",
        "missingcommenttext": "Inserta unu cummentu inoghe suta.",
-       "summary-preview": "Anteprima ogetu:",
-       "subject-preview": "Anteprima tema/tìtulu:",
-       "blockedtitle": "S'utente est istadu blocadu",
+       "summary-preview": "Antiprima ogetu:",
+       "subject-preview": "Antiprima tema/tìtulu:",
+       "blockedtitle": "S'usuàriu est istadu bloccadu",
        "blockedtext": "'''Custu nùmene usuàriu o indiritzu IP est stadu bloccadu.'''\n\nSu bloccu est stadu postu dae $1. Su motivu de su bloccu est: ''$2''\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.\n\nNota ca sa funtzione 'Ispedi un'e-mail a custu usuàriu' no est ativa ki no est stadu registradu un'indiritzu e-mail vàlidu in is [[Special:Preferences|preferèntzias]] tuas o ki s'usu de custa funtzione est stadu bloccadu.\n\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.",
        "blockednoreason": "perunu motivu inditadu",
        "loginreqtitle": "Identificatzione rechesta",
        "loginreqlink": "identìfica·ti",
-       "loginreqpagetext": "Deves èssere $1 pro bìdere àteras pàginas.",
-       "accmailtitle": "Paràula de òrdine imbiada.",
+       "loginreqpagetext": "Depes èsser $1 pro bìer àteras pàginas.",
+       "accmailtitle": "Password ispedida.",
        "newarticle": "(Nou)",
        "newarticletext": "Custa pàgina no esistit galu.\nPro creare sa pàgina, scrie in su box inoghe in bàsciu (abbàida sa [$1 pàgina de agiudu] pro àteras informatziones).\nSi ses intradu inoghe pro sbàlliu, carca in su browser tuo su butone '''back/indietro'''.",
        "anontalkpagetext": "----''Custa est sa pàgina de cuntierra de unu usuàriu anònimu ki no at creadu unu account galu, o ki non dd'usat. Pro custu impreamus su nùmeru de indiritzos IP pro ddu identificare. Is indiritzos IP podent però èsser cundivìdidos dae unos cantos usuàrios. Si ses unu usuàriu anònimu e ritenes ki custos cummentos non sunt diretos a tue, pro praxere [[Special:UserLogin/signup|crea unu account]] o [[Special:UserLogin|identifica·ti (log in)]] pro evitare cunfusione cun àteros usuàrios anònimos.''",
        "userpage-userdoesnotexist-view": "S'account de s'usuàriu \"$1\" no est stadu registradu.",
        "updated": "(Atualizadu)",
        "note": "'''Nota:'''",
-       "previewnote": "'''Regorda·ti ca custa est feti una ANTIPRIMA. Is mudàntzias tuas non sunt galu sarbadas!'''",
+       "previewnote": "<strong>Regorda·ti ca custa est feti una ANTIPRIMA.</strong>\nIs mudàntzias tuas non sunt galu sarbadas!",
+       "continue-editing": "Bae a s'àrea de acontzu",
        "previewconflict": "Custa antiprima rapresentat su testu in s'àrea acontzu testu de susu comente at a pàrrer si dda sarbas.",
-       "editing": "Càmbiu de $1",
+       "editing": "Cambiende $1",
+       "creating": "Creande $1",
        "editingsection": "Cambiende $1 (setzione)",
        "editingcomment": "Acontzu de $1 (setzione noa)",
        "editconflict": "Cunflitu de editzione: $1",
        "moveddeleted-notice": "Custa pàgina est istada fuliada.\nSu registru de is fuliaduras e moviduras de sa pàgina est ammustradu pro informatzione.",
        "log-fulllog": "Abbista su registru intreu",
        "edit-conflict": "Cunflitu de editzione.",
+       "postedit-confirmation-created": "Sa pàgina est stada creada",
+       "postedit-confirmation-restored": "Sa pàgina est stada restaurada",
+       "postedit-confirmation-saved": "S'acontzu tuo est stadu sarbadu",
+       "content-model-wikitext": "wikitestu",
+       "content-model-javascript": "JavaScript",
+       "content-model-css": "CSS",
        "viewpagelogs": "Càstia sos registros de custa pàgina",
        "nohistory": "Non b'est sa stòria de is acontzos pro custa pàgina.",
        "currentrev": "Revisione currente",
        "currentrev-asof": "Versione currente de is $1",
        "revisionasof": "Revisione de is $1",
-       "revision-info": "Revisione de is $1 dae $2",
+       "revision-info": "Revisione de su $4 a is $5 de {{GENDER:$6|$2}}$7",
        "previousrevision": "← Acontzu in antis",
        "nextrevision": "Acontzu in fatu →",
        "currentrevisionlink": "Revisione currente",
        "histlegend": "Cunfrontu intre versiones: sebera sa casella de sa versione ki boles e carca \"Invio\" o su butone in bàsciu.<br />\nCosas de ammentare: '''({{int:cur}})''' = diferèntzias cun sa versione currente,\n'''({{int:last}})''' = diferèntzias cun sa versione in antis, '''{{int:minoreditletter}}''' = acontzu minore.",
        "history-fieldset-title": "Sfògia sa stòria",
        "history-show-deleted": "Petzi borrados",
-       "histfirst": "Prima",
-       "histlast": "Ã\99rtima",
+       "histfirst": "prima",
+       "histlast": "ùrtima",
        "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
        "historyempty": "(bùida)",
        "history-feed-item-nocomment": "$1 su $2",
        "rev-delundel": "ammustra/cua",
        "rev-showdeleted": "ammustra",
        "revdelete-show-file-submit": "Eja",
-       "revdelete-radio-set": "Eja",
+       "revdelete-radio-set": "Cua",
+       "revdelete-log": "Motivu:",
        "revdel-restore": "Muda sa visibilidade",
        "pagehist": "Istòria de sa pàgina",
        "deletedhist": "Istòria fuliada",
        "mergehistory-no-source": "Sa pàgina de orìgine $1 no esistit.",
        "mergehistory-reason": "Motivu:",
        "revertmerge": "Iscontza s'unione",
-       "history-title": "Istòria de is revisiones de \"$1\"",
+       "history-title": "$1: Istòria de is revisiones",
        "lineno": "Lìnia $1:",
        "compareselectedversions": "Cumpara versiones scioberadas",
        "editundo": "annulla",
        "search-section": "(setzione $1)",
        "search-suggest": "Fortzis fias chirchende: $1",
        "search-interwiki-caption": "Progetos frades",
-       "search-interwiki-default": "$1 resurtados:",
+       "search-interwiki-default": "Resurtados dae $1:",
        "search-interwiki-more": "(àteru)",
        "searchall": "totu",
        "showingresults": "Inoghe sighende {{PLURAL:$1|benit ammustradu '''1''' resurtadu|benint ammustrados '''$1''' resurtados}} incumentzende dae su nùmeru '''$2'''.",
        "timezoneregion-asia": "Àsia",
        "timezoneregion-australia": "Austràlia",
        "timezoneregion-europe": "Europa",
-       "prefs-searchoptions": "Possibilidades a subra de sa chirca",
+       "prefs-searchoptions": "Chirca",
        "prefs-namespaces": "Nùmene-logos",
        "prefs-files": "Files",
        "youremail": "E-mail:",
-       "username": "Nùmene usuàriu:",
+       "username": "{{GENDER:$1|Nùmene usuàriu}}:Nùmene usuàriu",
        "prefs-registration": "Ora de registratzione:",
        "yourrealname": "Nùmene beru:",
        "yourlanguage": "Limba:",
        "prefs-info": "Informatzione bàsica",
        "prefs-signature": "Firma",
        "prefs-dateformat": "Formadu data",
-       "prefs-advancedediting": "Sèberos avantzados",
+       "prefs-advancedediting": "Sèberos generales",
+       "prefs-preview": "Antiprima",
        "prefs-advancedrc": "Sèberos avantzados",
        "prefs-advancedrendering": "Sèberos avantzados",
        "prefs-advancedsearchoptions": "Sèberos avantzados",
        "prefs-advancedwatchlist": "Sèberos avantzados",
+       "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Diferèntzias",
        "userrights-user-editname": "Inserta unu nùmene usuàriu:",
-       "editinguser": "Cambiamentu de is deretos usuàriu de s'usuàriu '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+       "editinguser": "Cambiamentu de is deretos usuàriu de s'usuàriu <strong>[[User:$1|$1]]</strong> $2",
        "userrights-reason": "Motivu:",
        "userrights-irreversible-marker": "$1*",
        "group": "Grupu:",
        "group-sysop": "Amministradores",
        "group-bureaucrat": "Buròcrates",
        "group-all": "(totus)",
-       "group-user-member": "Usuàriu",
-       "group-autoconfirmed-member": "Autocunfirmados usuàrios",
-       "group-bot-member": "Bot",
-       "group-sysop-member": "Amministradore",
-       "group-bureaucrat-member": "burocrate",
+       "group-user-member": "{{GENDER:$1|usuàriu}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|usuàrios autocunfirmados}}",
+       "group-bot-member": "{{GENDER:$1|bot}}",
+       "group-sysop-member": "{{GENDER:$1|aministradore}}",
+       "group-bureaucrat-member": "{{GENDER:$1|buròcrate}}",
        "grouppage-user": "{{ns:project}}:Usuàrios",
        "grouppage-autoconfirmed": "{{ns:project}}:Usuàrios autocunfirmadus",
        "grouppage-bot": "{{ns:project}}:Bots",
        "right-reupload": "Subra-iscrìere files esistentes",
        "right-reupload-own": "Subra-iscrìere files esistentes carrigados dae issetotu",
        "right-upload_by_url": "Carrigare files dae unu URL",
-       "right-autoconfirmed": "Acontzare pàginas mesu-amparadas",
+       "right-autoconfirmed": "No tenet lìmite de atziones pro indiritzos IP",
        "right-delete": "Fuliare pàginas",
        "right-browsearchive": "Chircare pàginas fuliadas",
        "right-undelete": "Restaurare una pàgina",
        "recentchanges-label-newpage": "Custu acontzu at creadu una pàgina noa",
        "recentchanges-label-minor": "Custu est unu acontzu minore",
        "recentchanges-label-bot": "Custu acontzu est stadu fatu dae unu bot",
-       "recentchanges-legend-newpage": "$1 - pàgina noa",
-       "rcnotefrom": "Sas chi sighint sunt sas mudàntzias dae '''$2''' (fintzas a '''$1''').",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (càstia [[Special:NewPages|is pàginas noas]])",
+       "rcnotefrom": "{{PLURAL:$5|Sa chi sighit est sa mudàntzia|Sas chi sighint sunt sas mudàntzias}} dae <strong>$3, $4</strong> (amostadas fintzas a <strong>$1</strong>).",
        "rclistfrom": "Ammustra mudàntzias dae $3 $2",
        "rcshowhideminor": "$1 acontzos minores",
        "rcshowhideminor-show": "Amosta",
        "rcshowhidebots": "$1 bots",
        "rcshowhidebots-show": "Amosta",
        "rcshowhidebots-hide": "Cua",
-       "rcshowhideliu": "$1 usuàrios intraus",
+       "rcshowhideliu": "$1 usuàrios registrados",
        "rcshowhideliu-show": "Amosta",
        "rcshowhideliu-hide": "Cua",
        "rcshowhideanons": "$1 usuàrios anònimos",
        "rc_categories_any": "Calesisiat",
        "rc-change-size": "$1",
        "newsectionsummary": "/* $1 */ setzione noa",
-       "rc-enhanced-expand": "Ammustra particulares (esigit JavaScript)",
+       "rc-enhanced-expand": "Amosta particulares",
        "rc-enhanced-hide": "Cua particulares",
        "recentchangeslinked": "Mudàntzias ligadas",
        "recentchangeslinked-feed": "Mudàntzias ligadas",
        "uploadbtn": "Càrriga file",
        "reuploaddesc": "Torra a su mòdulu pro su carrigamentu.",
        "uploadnologin": "Non ses intrau",
-       "uploadnologintext": "Depes èsser [[Special:UserLogin|identificadu (log in)]] pro carrigare files.",
+       "uploadnologintext": "Depes èsser $1 pro carrigare files.",
        "uploaderror": "Faddina de carrigamentu",
        "uploadtext": "Imprea su modulu a suta pro carrigare files nous.\nPro castiare o chircare is files giai carrigaus, bae a sa [[Special:FileList|lista de is files carrigaus]]. Carrigamentos de files e de noas versiones de files sunt registradas in su [[Special:Log/upload|registru de carrigamentu]], is burraduras in su [[Special:Log/delete|registru burraduras]].\n\nPro insertare unu file aintru de una pàgina, tocat a faghere unu cullegamentu tipu custu:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' pro impreare sa versione cumpleta de su file\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></code>''' pro impreare una versione lada 200 pixel insertada in d'unu box, allinniada a manca e cun 'testu alternativu' comente didascalia\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pro ingenerare unu cullegamentu a su file chentza de du biri",
        "uploadlogpage": "Carrigadas",
        "upload-file-error": "Faddina a intru",
        "license": "Licèntzia:",
        "license-header": "Licèntzia",
-       "upload_source_file": " (unu file in su computer tuo)",
+       "upload_source_file": "(su file seberadu in su computer tuo)",
        "imgfile": "file",
        "listfiles": "Lista de is files",
        "listfiles_date": "Data",
        "protectedtitles": "Tìtulus amparadus",
        "listusers": "Lista usuàrios",
        "usereditcount": "$1 {{PLURAL:$1|acontzu|acontzos}}",
-       "usercreated": "Creadu su $1 a is $2",
+       "usercreated": "{{GENDER:$3|Creadu}} su $1 a is $2",
        "newpages": "Pàginas noas",
        "newpages-username": "Nùmene usuàriu:",
        "move": "Movi",
        "booksources-search-legend": "Chirca fontes libràrias",
        "booksources-isbn": "ISBN:",
        "booksources-go": "Bae",
-       "specialloguserlabel": "Usuàriu:",
-       "speciallogtitlelabel": "Tìtulu:",
+       "specialloguserlabel": "Atzione fata dae:",
+       "speciallogtitlelabel": "Atzione fata subra:",
        "log": "Registros",
        "allpages": "Totu is pàginas",
        "prevpage": "Pàgina in antis ($1)",
        "allpages-bad-ns": "Su nùmene-logu \"$1\" non esistit in {{SITENAME}}.",
        "categories": "Categorias",
        "sp-deletedcontributions-contribs": "contributziones",
-       "linksearch": "Acàpios a foras",
+       "linksearch": "Chirca acàpios de foras",
        "linksearch-ns": "Nùmene-logu:",
        "linksearch-ok": "Chirca",
        "listusers-submit": "Ammustra",
        "emailuser": "E-mail a custu usuàriu",
        "emailpage": "Ispedi una missada a s'usuàriu",
        "emailpagetext": "Imprea su mòdulu a suta pro ispedire una missada eletrònica a custu usuàriu.\nS'indiritzu chi as insertadu in is [[Special:Preferences|preferèntzias usuàriu tuas]] at a pàrrere comente su chi at ispedidu sa e-mail, pro fàghere sa manera chi su destinatàriu ti respundat deretu.",
-       "defemailsubject": "Missada dae {{SITENAME}}",
+       "defemailsubject": "Missada dae s'usuàriu \"$1\" de {{SITENAME}}",
        "noemailtitle": "Perunu indiritzu e-mail",
        "noemailtext": "Custu usuàriu no at ispetzificadu un indiritzu e-mail vàlidu.",
        "email-legend": "Imbia una missada e-mail a un àteru usuàriu de {{SITENAME}}",
        "mywatchlist": "Pàginas annotadas",
        "nowatchlist": "No as indicadu pàginas in sa watchlist tua.",
        "watchnologin": "No intrau (log in)",
-       "addedwatchtext": "Sa pàgina \"[[:$1]]\" est istada aciunta a sa [[Special:Watchlist|watchlist]] tua.\nIs mudàntzias de custa pàgina e de sa pàgina de cuntierras sua ant a bennere elencadas inoe, e su tìtulu at a aparire in '''grassetto''' in sa pàgina de is [[Special:RecentChanges|ùrtimas mudàntzias]] pro du bidere mengius.",
+       "addedwatchtext": "Sa pàgina \"[[:$1]]\" est istada aciunta a sa [[Special:Watchlist|watchlist]] tua.\nIs mudàntzias de custa pàgina e de sa pàgina de cuntierras sua ant a benner elencadas inoe.",
        "removedwatchtext": "Sa pàgina  \"[[:$1]]\" est istada tirada dae sa [[Special:Watchlist|watchlist tua]].",
        "watch": "Pone in sa watchlist",
        "watchthispage": "Pone ogru a custu artìculu",
        "namespace": "Nùmene-logu:",
        "invert": "Fùrria sa seletzione",
        "blanknamespace": "(Printzipale)",
-       "contributions": "Contributziones usuàriu",
+       "contributions": "Contributziones {{GENDER:$1|usuàriu}}",
        "contributions-title": "Contributziones de $1",
        "mycontris": "Contributziones meas",
-       "contribsub2": "Pro $1 ($2)",
+       "contribsub2": "Pro {{GENDER:$3|$1}} ($2)",
        "nocontribs": "Nessuna modifica trovata conformemente a questi criteri.",
-       "uctop": "(ùrtimu de sa pàgina)",
+       "uctop": "(atuale)",
        "month": "Dae su mese (e in antis):",
        "year": "Dae s'annu (e in antis):",
        "sp-contributions-newbies": "Ammustra feti is contributziones de is accounts noos",
        "nolinkshere-ns": "Peruna pàgina ligat a '''[[:$1]]''' in su nùmene-logu seberadu.",
        "isredirect": "redirect",
        "istemplate": "inclusione",
-       "isimage": "acàpiu pintura",
+       "isimage": "acàpiu a file",
        "whatlinkshere-prev": "{{PLURAL:$1|cabudianu|cabudianos $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|imbeniente|imbenientes $1}}",
        "whatlinkshere-links": "← acàpius",
        "whatlinkshere-hidetrans": "$1 inclusionis",
        "whatlinkshere-hidelinks": "$1 acàpius",
        "whatlinkshere-filters": "Filtros",
-       "blockip": "Blocca usuàriu",
+       "blockip": "Blocca {{GENDER:$1|usuàriu}}",
        "blockip-legend": "Blocca usuàriu",
        "blockiptext": "Usa il modulo sottostante per bloccare l'accesso con diritto di scrittura da uno specifico indirizzo IP. Questo blocco deve essere operato SOLO per prevenire atti di vandalismo, ed in stretta osservanza dei principi tutti della [[{{MediaWiki:Policy-url}}|policy di {{SITENAME}}]]. Il blocco non può in nessun caso essere applicato per motivi ideologici.\nScrivi un motivo specifico per il quale questo indirizzo IP dovrebbe a tuo avviso essere bloccato (per esempio, cita i titoli di pagine eventualmente già oggetto di vandalismo editoriale).",
        "ipaddressorusername": "Indiritzu IP o nùmene usuàriu:",
        "ipboptions": "2 oras:2 hours,1 die:1 day,3 dies:3 days,1 chida:1 week,2 chidas:2 weeks,1 mese:1 month,3 meses:3 months,6 meses:6 months,1 annu:1 year,infinidu:infinite",
        "badipaddress": "S'indiritzu IP indicadu non est currègidu.",
        "blockipsuccesssub": "Bloccu esecutivu",
-       "blockipsuccesstext": "[[Special:Contributions/$1|$1]] è stadu bloccadu. <br />\nAbbàida sa [[Special:BlockList|lista de IP bloccados]] pro bìder sas bloccaduras.",
+       "blockipsuccesstext": "[[Special:Contributions/$1|$1]] è stadu bloccadu. <br />\nCàstia sa [[Special:BlockList|lista de bloccados]] pro bìder sas bloccaduras.",
        "ipb-edit-dropdown": "Acontza su motivu de su bloccu",
        "ipb-unblock-addr": "Sblocca $1",
-       "ipb-blocklist-contribs": "Contributziones de $1",
+       "ipb-blocklist-contribs": "Contributziones de {{GENDER:$1|$1}}",
        "unblockip": "Sblocca s'usuàriu",
        "unblockiptext": "Usa il modulo sottostante per restituire il diritto di scrittura ad un indirizzo IP precedentemente bloccato.",
        "ipusubmit": "Boga custu bloccu",
-       "ipblocklist": "Usuàrios e indiritzos bloccados",
+       "ipblocklist": "Usuàrios bloccados",
        "ipblocklist-submit": "Chirca",
        "infiniteblock": "infinitu",
        "expiringblock": "scadit su $1 a is $2",
        "databasenotlocked": "Su database no est bloccadu.",
        "move-page": "Movimentu de $1",
        "move-page-legend": "Movimentu pàgina",
-       "movepagetext": "Cun custu mòdellu podes renumenare una pàgina, movende totu sa stòria sua a sa pàgina noa.\nSu tìtulu bèciu at a diventare una pàgina de reindiritzamentu a su tìtulu nou.\nPodes agiornare automaticamente is redirects ca ligant a su tìtulu originàriu.\nSi sèberas de no, assicura·ti de controllare pro [[Special:DoubleRedirects| reindiritzaduras dòpias]] o [[Special:BrokenRedirects|sballiadas]].\nSes responsàbile de t'assigurare ca is cullegamentos sighint a puntare  a ue depent puntare.\n\nAnnota ca sa pàgina '''non''' s'at a mòver si nde esistit giai un'àtera a su tìtulu nou, si no est ki siat bùida o cun sceti unu reindiritzamentu a sa bècia e siat chentza acontzos in antis. In casu de movimentu sballiadu, duncas, si podet torrare a su tìtulu bèciu, ma non podes subrascrìer una pàgina chi giai esistit.\n\n'''ATENTZIONE:'''\nUnu cambiamentu dràsticu podet creare problemas, mescamente a is pàginas prus populares;\npro praxere depes èsser seguru de àer cumpresu is cunsighèntzias prima de sighire a in antis.",
+       "movepagetext": "Cun custu mòdellu podes renumenare una pàgina, movende totu sa stòria sua a sa pàgina noa.\nSu tìtulu bèciu at a diventare una pàgina de reindiritzamentu a su tìtulu nou.\nPodes agiornare automaticamente is redirects ca ligant a su tìtulu originàriu.\nSi sèberas de no, assicura·ti de controllare pro [[Special:DoubleRedirects| reindiritzaduras dòpias]] o [[Special:BrokenRedirects|sballiadas]].\nSes responsàbile de t'assigurare ca is cullegamentos sighint a puntare  a ue depent puntare.\n\nAnnota ca sa pàgina <strong>non</strong> s'at a mòver si nde esistit giai un'àtera a su tìtulu nou, si no est ki siat bùida o cun sceti unu reindiritzamentu a sa bècia e siat chentza acontzos in antis. In casu de movimentu sballiadu, duncas, si podet torrare a su tìtulu bèciu, ma non podes subrascrìer una pàgina chi giai esistit.\n\n<strong>ATENTZIONE!</strong>\nUnu cambiamentu dràsticu podet creare problemas, mescamente a is pàginas prus populares;\npro praxere depes èsser seguru de àer cumpresu is cunsighèntzias prima de sighire a in antis.",
        "movepagetalktext": "Sa pàgina cuntierras asotziada, chi esistit, at a èssere movida automaticamenti impare a sa pàgina base, '''a parte in custos casos''':\n* su movimentu de sa pàgina est intre namespaces diversos;\n* in currispondèntzia de su tìtulu nou esistit giai una pàgina de cuntierras (non bùida);\n* sa casella inoe in bàsciu no est istata sceberada.\n\nIn custos casos, si cheres, depes mòvere a manu su cuntènnidu de sa pàgina.",
        "movearticle": "Move sa pàgina",
        "movenologintext": "Depes èsser unu usuàriu registradu e [[Special:UserLogin|identificadu]] pro pòder mòver una pàgina",
        "metadata-help": "Custu file cuntènnit informatziones aciuntivas, probabilmente aciuntas dae sa fotocamera o dae su scannerizadori impreaus pro ddu creare o ddu digitalizare. Si su file est istadu acontzau, unos particolares podent non currispundere a sa realtade.",
        "metadata-expand": "Ammustra particulares",
        "metadata-collapse": "Cua particulares",
-       "metadata-fields": "Is campus de is metadatos EXIF listaus in custu messàgiu ant a èssere amostaus in sa pàgina de s'immàgine candu sa tabella de is metadatos est presentada in forma breve. Pro impostatzione predefinia, is àteros campus ant a èssere cuaus.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "Is campus de is metadatos de imàgine listadus in custu messàgiu ant a èssere amostadus in sa pàgina de s'immàgine candu sa tabella de is metadatos est presentada in forma breve. Pro impostatzione predefinia, is àteros campus ant a èssere cuaus.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-artist": "Autore",
        "exif-exposuretime-format": "$1 s ($2)",
        "exif-fnumber-format": "f/$1",
        "exif-xyresolution-i": "$1 dpi",
        "exif-xyresolution-c": "$1 dpc",
        "exif-colorspace-1": "sRGB",
-       "exif-colorspace-65535": "FFFF.H",
+       "exif-colorspace-65535": "Chentza calibradura",
        "exif-componentsconfiguration-1": "Y",
        "exif-componentsconfiguration-2": "Cb",
        "exif-componentsconfiguration-3": "Cr",
        "version-specialpages": "Pàginas ispetziales",
        "version-other": "Àteru",
        "version-version": "(Versione $1)",
-       "version-license": "Licèntzia",
+       "version-license": "Licèntzia MediaWiki",
        "version-software-version": "Versione",
        "fileduplicatesearch-submit": "Chirca",
        "specialpages": "Pàginas ispetziales",
index 62f3650..052335e 100644 (file)
        "talkpagelinktext": "Discussioni",
        "specialpage": "Pàggina spiciali",
        "personaltools": "Strumenta pirsunali",
-       "postcomment": "Nova sizzioni",
        "articlepage": "artìculu",
        "talk": "discussioni",
        "views": "Vìsiti",
        "externaldberror": "S'havi virificatu n'erruri cû server d'autinticazzioni sternu, oppuru nun si disponi di l'auturizzazzioni nicissari p'aggiurnari lu propiu accessu sternu.",
        "login": "Trasi",
        "nav-login-createaccount": "Riggìstrati o trasi",
-       "loginprompt": "Tu hai a abbilitari li ''cookies'' pi tràsiri ntâ {{SITENAME}}.",
        "userlogin": "Riggìstrati o trasi",
        "userloginnocreate": "Trasi",
        "logout": "Nesci",
        "searchprofile-advanced-tooltip": "Cerca ntê namespace pirsunalizzati",
        "search-result-size": "$1 ({{PLURAL:$2|na parola|$2 paroli}})",
        "search-result-category-size": "{{PLURAL:$1|1 utenti|$1 utenti}} ({{PLURAL:$2|1 suttacatigurìa|$2 suttacatigurìi}}, {{PLURAL:$3|1 file|$3 files}})",
-       "search-result-score": "Rilivanza: $1%",
        "search-redirect": "(redirect $1)",
        "search-section": "(sizzioni $1)",
        "search-suggest": "Forsi circavutu: $1",
        "uploadwarning": "Avvisu di Upload",
        "uploadwarning-text": "Cancia cà sutta la discrizzioni di lu file e prova arré",
        "savefile": "Sarva file",
-       "uploadedimage": "hà carricatu \"[[$1]]\"",
-       "overwroteimage": "carricata na nova virsioni di \"[[$1]]\"",
        "uploaddisabled": "Semu spiacenti, ma lu carricamentu di file è timpuraniamenti suspisu.",
        "uploaddisabledtext": "Lu carricamentu dî file nun è attivu supra a stu situ.",
        "php-uploaddisabledtext": "Li file PHP non sunnu abbilitati. Pi favuri cuntrolla li mpustazzioni dû file_uploads.",
        "watchlist-details": "La lista dê pàggini taliati cunteni {{PLURAL:$1|na pàggina (cu la rispittiva pàggina di discussioni)|$1 pàggini (cu li rispittivi pàggini di discussioni)}}.",
        "wlheader-enotif": "La nutìfica via e-mail è attivata.",
        "wlheader-showupdated": "Li pàggini ca hannu statu canciati dâ tò ùrtima vìsita sunnu evidinziati 'n '''grassettu'''",
+       "wlnote": "Sutta attrovi l'ùrtim{{PLURAL:$1|u canciamentu|i $1 canciamenti}}, nta l'ùrtim{{PLURAL:$1|a ura|i '''$2''' uri}}.",
        "wlshowlast": "Ammustra l'ùrtimi $1 uri $2 jorna $3",
        "watchlist-options": "Opzioni ussirvati spiciali",
        "watching": "Junta a l'ussirvati spiciali...",
index 628e67f..caf7d13 100644 (file)
        "searchprofile-advanced-tooltip": "Rake in custom namespaces",
        "search-result-size": "$1 ({{PLURAL:$2|1 waird|$2 wairds}})",
        "search-result-category-size": "{{PLURAL:$1|1 memmer|$1 memmers}} ({{PLURAL:$2|1 subcategerie|$2 subcategeries}}, {{PLURAL:$3|1 file|$3 files}})",
-       "search-result-score": "Relevanc: $1%",
        "search-redirect": "(reguide $1)",
        "search-section": "(section $1)",
        "search-file-match": "(matches file content.)",
        "uploadwarning": "Uplaid warnishment",
        "uploadwarning-text": "Please modeefie the file descreeption ablo n gie it anither gae.",
        "savefile": "Hain file",
-       "uploadedimage": "uplaidit \"[[$1]]\"",
-       "overwroteimage": "uplaided ae new version o \"[[$1]]\"",
        "uploaddisabled": "Sarrie, uplaidin is disablit.",
        "copyuploaddisabled": "Uplaid bi URL disabled.",
        "uploaddisabledtext": "File uplaids ar disabled.",
index 9884302..c6d69e9 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Aursani"
+                       "Aursani",
+                       "아라"
                ]
        },
        "tog-showtoolbar": "سنوارپ اوزار دٻي ڏيکاريو (جاوا اسڪرپٽ)",
        "qbmyoptions": "منهنجا صفحا",
        "faq": "ڪپوس",
        "faqpage": "Project:ڪپوس",
-       "vector-action-delete": "ڊاھيو",
-       "vector-action-move": "چوريو",
-       "vector-action-protect": "تحفظيو",
-       "vector-action-unprotect": "اڻتحفظيو",
-       "vector-view-create": "سرجيو",
-       "vector-view-edit": "سنواريو",
-       "vector-view-viewsource": "ڪوڊ ڏسو",
        "errorpagetitle": "چُڪَ",
        "returnto": "$1 ڏانهن وَرو.",
        "tagline": "{{SITENAME}} طرفان",
        "talkpagelinktext": "بحث",
        "specialpage": "خاص صفحو",
        "personaltools": "ذاتي اوزار",
-       "postcomment": "تاثرات درج ڪريو",
        "articlepage": "مسودو ڏسو",
        "talk": "بحث",
        "views": "ڏيٺون",
        "remembermypassword": "هن ڳڻپيوڪر تي مون کي ياد رکو (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "login": "لاگ اِن",
        "nav-login-createaccount": "لاگ اِن ٿيو / کاتو کوليو",
-       "loginprompt": "{{SITENAME}} ۾ لاگ اِن ٿيڻ لاءِ ڪوڪيز جي قبوليت لازمي آهي.",
        "userlogin": "لاگ اِن ٿيو / کاتو کوليو",
        "logout": "لاگ آئوٽ",
        "userlogout": "لاگ آئوٽ",
        "prevn": "پويان {{PLURAL:$1|$1}}",
        "nextn": "اڳيان {{PLURAL:$1|$1}}",
        "viewprevnext": "ڏسو ($1 {{int:pipe-separator}} $2) ($3)",
-       "powersearch-redir": "چورڻن جي فهرست ڏيکاريو",
        "preferences": "ترجيحات",
        "mypreferences": "منهنجون ترجيحات",
        "skin-preview": "پيش نگاهه",
        "recentchanges": "تازيون تبديليون",
        "recentchanges-feed-description": "ۡهن روان رسد ۾ آيل تازيون تبديليون لهو",
        "rcnotefrom": "هيٺ '''$2''' کان ٿيندڙ تبديليون پيش ڪجن ٿيون ('''$1''' تائين ڏيکارجن ٿيون).",
-       "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": "ھتان شروع ٿيندڙ صفحا نمايو",
index a934d02..57e7818 100644 (file)
        "talkpagelinktext": "Dischussioni",
        "specialpage": "Pagina ippiziari",
        "personaltools": "Isthrumenti passunari",
-       "postcomment": "Noba sezzioni",
        "articlepage": "Vedi la bozi",
        "talk": "Dischussioni",
        "views": "Vìsiti",
        "externaldberror": "S'è verifiggaddu un errori cu lu server di autentificazioni esthernu, oppuru nò si diponi di l'autorizazioni nezzessàri pa aggiornà la propria registhrazioni estherna.",
        "login": "Intra",
        "nav-login-createaccount": "Intra / registhrazioni",
-       "loginprompt": "Pa intrà a {{SITENAME}} è nezzessàriu abirità li cookie.",
        "userlogin": "Intra o cria una noba registhrazioni",
        "userloginnocreate": "Intra",
        "logout": "Esci",
        "fileexists-shared-forbidden": "Un file cun chisthu innòmmu isisthi già i l'archìbiu di li risuzzi mùrthimediari cundibisi. Turrà indareddu e mudìfiggà l'innòmmu cu' lu quari carriggà lu file. [[File:$1|thumb|center|$1]]",
        "uploadwarning": "Avvisu di carriggamentu",
        "savefile": "Saivva file",
-       "uploadedimage": "ha carriggaddu \"[[$1]]\"",
-       "overwroteimage": "ha carriggaddu una nóba versioni di \"[[$1]]\"",
        "uploaddisabled": "Semmu dipiazuddi, ma lu carriggamentu di file è timpuraniamenti suippesu.",
        "uploaddisabledtext": "Lu carriggamentu di file nò è attibu i' {{SITENAME}}.",
        "uploadscripted": "Chistu file cunteni còdizi HTML o script, chi pudia assé interpretaddu mari da lu nabiggadori.",
        "watchlist-details": "La listha di l'abbaidaddi ippiziari cunteni {{PLURAL:$1|una pagina (e la rippettiba pagina di dischussioni)|$1 pagini (e li rippettibi pagini di dischussioni)}}.",
        "wlheader-enotif": "La nutìfica via postha erettrònica è attiba.",
        "wlheader-showupdated": "Li pàgini chi so isthaddi mudìfiggaddi daboi l'ulthima vìsita so evidenziaddi in '''grasseddu'''",
+       "wlnote": "Inogghi {{PLURAL:$1|è erencadda la mudìfigga più rizzenti arriggadda|so erencaddi li '''$1''' mudìfigghi più rizzenti arriggaddi}} {{PLURAL:$2|i' la ulthima ora|i' li ulthimi '''$2''' ori}}.",
        "wlshowlast": "Musthra li ulthimi $1 ori $2 dì $3",
        "watchlist-options": "Opzioni abbaidaddi ippiziari",
        "watching": "Aggiunta a l'abbaidaddi ippiziari...",
index d079543..85bf781 100644 (file)
        "talkpagelinktext": "Ságastallan",
        "specialpage": "Sierrasiidu",
        "personaltools": "Persovnnalaš bargoneavvu",
-       "postcomment": "Ođđa sekšuvdna",
        "articlepage": "Geahča sisdoalu",
        "talk": "Ságastallan",
        "views": "Čájáhusat",
        "yourdomainname": "Fierbmenamma",
        "login": "Čálligoađe sisa",
        "nav-login-createaccount": "Daga ođđa geavaheaddjidovddaldaga dahje čálligoađe sisa",
-       "loginprompt": "Sisačállimii dárbbašuvvojit geavssat (cookies).",
        "userlogin": "Logge sisa dahje ráhkat dovddaldaga",
        "logout": "Čálligoađe olggos",
        "userlogout": "Logge olggos",
        "largefileserver": "Dát fiila lea menddo stuoris.",
        "uploadwarning": "Lasihanvaruhus",
        "savefile": "Vurke",
-       "uploadedimage": "vurkii fiilla [[$1]]",
-       "overwroteimage": "vurkii ođđa veršuvnna fiillas «[[$1]]»",
        "uploaddisabled": "{{GRAMMAR:genitive|{{SITENAME}}}} ii sáhte lasihit fiillaid.",
        "uploaddisabledtext": "Fiillaid vurken lea váldojuvvon eret anus.",
        "uploadscripted": "Dát fiila sisdisdoalla HTML-koda dahje skriptaid, maid neahttabláđejeaddji sáhttá vahagis dahkat.",
        "watchlist-details": "Du čuovvunlisttus {{PLURAL:$1|lea $1 siidu|leat $1 siiddu}}. Lohkui eai leat váldojuvvon ságastallansiidduid.",
        "wlheader-enotif": "E-poastaalmmuhusat leat anus.",
        "wlheader-showupdated": "Siiddut, mat leat rievdaduvvon du maŋimus geavahangearddi maŋŋá leat merkojuvvon '''buoiddes teavsttain'''",
+       "wlnote": "Vuolábealde lea '''$1''' {{PLURAL:$1|rievdadus|rievdadusa}} maŋimus {{PLURAL:$2||'''$2'''}} diimma siste.",
        "wlshowlast": "Čájet maŋimus $1 diimmu dahje $2 beaivvi $3",
        "watching": "Lasihuvvo čuovvunlistui...",
        "unwatching": "Sihkojuvvo čuovvunlisttus...",
index 0ff91b7..813f64b 100644 (file)
        "talkpagelinktext": "Czaxö",
        "specialpage": "Páhina extrava",
        "personaltools": "Cui personalui",
-       "postcomment": "Iitom pte queeet",
        "articlepage": "Cohuatlöx contentua páhina",
        "talk": "Czaxö",
        "views": "Cohuatlöxám",
        "externaldberror": "Pos-römjde authenticacionde database extername jöx me necoccebj permiccionde updatan mecaitom externom.",
        "login": "Caápo",
        "nav-login-createaccount": "Caápo / xuatl",
-       "loginprompt": "Henáabliicookám caápo {{SITENAME}}.",
        "userlogin": "Caápo / xuatl",
        "logout": "Cuípo",
        "userlogout": "Cuípo",
        "filetype-missing": "Ciúchan zo necoccebj extencion (pac' \".jpg\").",
        "uploadwarning": "Attencionde uploadan",
        "savefile": "Xuniim ciúchan",
-       "uploadedimage": "uploadöx \"[[$1]]\"",
-       "overwroteimage": "uploadöx hunvercion zode \"[[$1]]\"",
        "uploadvirus": "Jan ciúchan coccebj virusde PC zo! Detailám: $1",
        "sourcefilename": "Sourcenam IDde ciúchan:",
        "destfilename": "Destinacion IDde ciúchan:",
index 6ad3c21..ba7af45 100644 (file)
        "talkpagelinktext": "Aptarėms",
        "specialpage": "Specēlosis poslapis",
        "personaltools": "Persuonalėnē rakondā",
-       "postcomment": "Rašītė kuomentara",
        "articlepage": "Veizietė straipsnė",
        "talk": "Aptarėms",
        "views": "Parveizėtė",
        "yourdomainname": "Tamstas domens:",
        "login": "Prisėjongtė",
        "nav-login-createaccount": "Prėsėjongtė / sokortė paskīra",
-       "loginprompt": "Ijonkėt pakavukus, jēgo nuorėt prisėjongtė pri {{SITENAME}}.",
        "userlogin": "Prėsėjongtė / sokortė paskīra",
        "userloginnocreate": "Prisėjongtė",
        "logout": "Atsėjongtė",
        "searchprofile-advanced-tooltip": "Ėiškoutė skėrtingūsė vardū sėtīsė",
        "search-result-size": "$1 ({{PLURAL:$2|1 žuodis|$2 žuodē|$2 žuodiu}})",
        "search-result-category-size": "{{PLURAL:$1|1 narīs|$1 nariū}} ({{PLURAL:$2|1 subkateguorėjuo|$2 subkateguorėju}}, {{PLURAL:$3|1 fails|$3 failu}})",
-       "search-result-score": "Tėnkamoms: $1%",
        "search-redirect": "(paradresavėms $1)",
        "search-section": "(skīrios $1)",
        "search-suggest": "Mažo nuoriejot $1",
        "file-exists-duplicate": "Tas fails īr {{PLURAL:$1|šėta faila|šėtū failu}} doblėkats:",
        "uploadwarning": "Diemesė",
        "savefile": "Ėšsauguotė faila",
-       "uploadedimage": "ikielė „[[$1]]“",
-       "overwroteimage": "ikruovė nauja „[[$1]]“ versėjė",
        "uploaddisabledtext": "Failu ikielėmā oždraustė īr.",
        "uploadscripted": "Šėts failos tor HTML a programėni kuoda, katros gal būtė klaidėngā soprasts interneta naršīklės.",
        "uploadvirus": "Šėtom faile īr virosas! Ėšsamiau: $1",
        "watchlist-details": "Keravuojama $1 {{PLURAL:$1|poslapis|$1 poslapē|$1 poslapiu}} neskaitlioujant aptarėmu poslapiu.",
        "wlheader-enotif": "El. pašta primėnėmā ijongtė īr.",
        "wlheader-showupdated": "Poslapē, katrėi pakeistė nu Tamstas paskotėnė apsėlonkėma čiesa anūs, īr pažīmietė '''pastuorintā'''",
+       "wlnote": "Ruoduoma '''$1''' paskotėniu pakeitėmu, atlėktū par '''$2''' paskotėniu adīnu.",
        "wlshowlast": "Ruodītė paskotėniu $1 adīnu, $2 dėinū a $3 pakeitėmus",
        "watchlist-options": "Keravuojamu sāroša pasėrinkėmā",
        "watching": "Itraukiama i keravuojamu sāraša...",
index b422598..5f637fd 100644 (file)
@@ -6,7 +6,8 @@
                        "Nemo bis",
                        "OC Ripper",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Milicevic01"
                ]
        },
        "tog-underline": "Podvuci linkove:",
        "talkpagelinktext": "Razgovor",
        "specialpage": "Posebna stranica",
        "personaltools": "Lični alati",
-       "postcomment": "Pošaljite komentar - Пошаљите коментар",
        "articlepage": "Pogledaj stranicu sa sadržajem (članak)",
        "talk": "Razgovor / Разговор",
        "views": "Pregledi",
        "externaldberror": "Došlo je do greške pri vanjskoj autorizaciji baze podataka ili vam nije dopušteno osvježavanje Vašeg vanjskog korisničkog računa.",
        "login": "Prijavi me - Пријави ме",
        "nav-login-createaccount": "Prijavi se / Registruj se",
-       "loginprompt": "Morate imati kolačiće ('''cookies''') omogućene da biste se prijavili na {{SITENAME}}.",
        "userlogin": "Prijavi se / Пријави се",
        "userloginnocreate": "Prijavi se",
        "logout": "Odjavi se / Одјави се",
        "undo-failure": "Izmjene se ne mogu vratiti zbog konflikta sa izmjenama u međuvremenu.",
        "undo-norev": "Izmjena se ne može vratiti jer ne postoji ranija ili je obrisana.",
        "undo-nochange": "Ovo je uređivanje izgleda već bilo poništeno.",
-       "undo-summary": "Poništena izmjena $1 [[Special:Contributions/$2|korisnika $2]] ([[User talk:$2|razgovor]])",
+       "undo-summary": "Poništena izmjena $1 [[Special:Contribs/$2|korisnika $2]] ([[User talk:$2|razgovor]])",
        "undo-summary-username-hidden": "Poništi izmjenu $1 od skrivenog korisnika",
        "cantcreateaccounttitle": "Nije moguće napraviti korisnički račun",
        "cantcreateaccount-text": "Pravljenje korisničkog računa sa ove IP adrese ('''$1''') je blokirano od strane [[User:$3|$3]].\n\nRazlog koji je naveo $3 je ''$2''",
        "searchprofile-advanced-tooltip": "Traži u ostalim imenskim prostorima",
        "search-result-size": "$1 ({{PLURAL:$2|1 riječ|$2 riječi}})",
        "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 podkategorija|$2 podkategorije|$2 podkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})",
-       "search-result-score": "Relevantnost: $1%",
        "search-redirect": "(preusmjeravanje $1)",
        "search-section": "(sekcija $1)",
        "search-file-match": "(odgovara sadržaju datoteke)",
        "uploadwarning": "Upozorenje pri slanju",
        "uploadwarning-text": "Molimo izmijeniti opis datoteke ispod i pokušajte kasnije.",
        "savefile": "Snimi datoteku",
-       "uploadedimage": "postavljeno \"[[$1]]\"",
-       "overwroteimage": "postavljena nova verzija datoteke \"[[$1]]\"",
        "uploaddisabled": "Slanje fajlova je isključeno",
        "copyuploaddisabled": "Postavljanje putem URL nije omogućeno.",
        "uploaddisabledtext": "Postavljanje datoteka je onemogućeno.",
        "watchlist-details": "{{PLURAL:$1|$1 stranica praćena|$1 stranice praćene|$1 stranica praćeno}} ne računajući stranice za razgovor.",
        "wlheader-enotif": "* Obavještavanje e-poštom je omogućeno.",
        "wlheader-showupdated": "* Stranice koje su izmijenjene od kad ste ih posljednji put posjetili su prikazane '''podebljanim slovima'''",
+       "wlnote": "Ispod {{PLURAL:$1|je posljednja izmjena|su posljednje '''$1''' izmjene|je posljednjih '''$1''' izmjena}} u {{PLURAL:$2|prethodnom satu|prethodna '''$2''' sata|prethodnih '''$2''' sati}}, zaključno sa $3, $4.",
        "wlshowlast": "Prikaži posljednjih $1 sati $2 dana $3",
        "watchlist-options": "Opcije liste praćenja",
        "watching": "Pratim... / Додавање на списак надгледања...",
index d2a285b..6b4ac69 100644 (file)
        "talkpagelinktext": "Sgdl (mdiwil)",
        "specialpage": "Tasna izlin",
        "personaltools": "Imasn inu",
-       "postcomment": "Ayyaw amaynu",
        "articlepage": "Mel mayllan ɣ tasna",
        "talk": "Amsgdal",
        "views": "Ẓr.. (Mel)",
        "externaldberror": "Imma tlla ɣin kra lafut ɣu ukcumnk ulla urak ittuyskar at tsbddelt lkontnk nbrra.",
        "login": "Kcm ɣid",
        "nav-login-createaccount": "kcm / murzm Amidan",
-       "loginprompt": "You must have cookies enabled to log in to {{SITENAME}}.",
        "userlogin": "kchem / qiyd amskhdam amaynu",
        "userloginnocreate": "Kcm ɣid",
        "logout": "Fuɣ",
        "searchprofile-advanced-tooltip": "Cabba ɣ igmmaḍn li tuyzlaynin",
        "search-result-size": "$1 ({{PLURAL:$2|1 taguri|$2 tiguriwin}})",
        "search-result-category-size": "$1 amdan{{PLURAL:$1||i-n}} ($2 ddu talɣa{{PLURAL:$2||i-s}}, $3 asdaw{{PLURAL:$3||i-n}})",
-       "search-result-score": "Tazdayt: $1%",
        "search-redirect": "(Asmmati $1)",
        "search-section": "Ayyaw $1",
        "search-suggest": "Is trit att nnit: $1",
        "filereuploadsummary": "Imbddln n usdaw",
        "filestatus": "Izrfan ḥbanin",
        "filesource": "Aɣbalu",
-       "uploadedimage": "Issrba \"[[$1]]\"",
        "upload-source": "Aɣbalu n usdaw",
        "sourcefilename": "Aɣbalu n ussaɣ n usdaw",
        "license": "Tlla s izrfan",
index 3b582a5..2a980fe 100644 (file)
@@ -22,7 +22,8 @@
                        "රොමානිස් සැමුවෙල්",
                        "ශ්වෙත",
                        "සුරනිමල",
-                       "아라"
+                       "아라",
+                       "හරිත"
                ]
        },
        "tog-underline": "සබැඳි යටීර කිරීම:",
        "talkpagelinktext": "කතාබහ",
        "specialpage": "විශේෂ පිටුව",
        "personaltools": "පුද්ගලික මෙවලම්",
-       "postcomment": "නව ඡේදයක්",
        "articlepage": "අන්තර්ගත පිටුව නරඹන්න",
        "talk": "සාකච්ඡාව",
        "views": "දෘෂ්ටි",
        "hidetoc": "සඟවන්න",
        "collapsible-collapse": "හකුලන්න",
        "collapsible-expand": "විදහන්න",
+       "confirmable-confirm": "{{GENDER:$1|ඔබට}} විශ්වාස ද?",
+       "confirmable-yes": "ඔව්",
+       "confirmable-no": "නැත",
        "thisisdeleted": "අවශ්‍යතාවය $1 නැරඹීමද නැතහොත් ප්‍රතිෂ්ඨාපනයද?",
        "viewdeleted": "$1 නැරඹීම අවශ්‍යයද?",
        "restorelink": "මකා දමනු ලැබූ {{PLURAL:$1| එක් සංස්කරණයක්| සංස්කරණ $1  ක්}}",
        "externaldberror": "එක්කෝ සත්‍යාවත් දත්ත-ගබඩා දෝෂයක් පැවතුනි නැතිනම් ඔබගේ බාහිර ගිණුම යාවත්කාලීන කිරීමට ඔබ හට අවසර දී නොමැත.",
        "login": "පිවිසෙන්න",
        "nav-login-createaccount": "පිවිසෙන්න / නව ගිණුමක් තනන්න",
-       "loginprompt": "{{SITENAME}} වෙත ප්‍රවිෂ්ට වීම සඳහා ඔබ විසින් කුකීස් සක්‍රීය කොට තිබිය යුතුය.",
        "userlogin": "පිවිසෙන්න / නව ගිණුමක් තනන්න",
        "userloginnocreate": "ප්‍රවිෂ්ට වන්න",
        "logout": "නික්මීම",
        "suspicious-userlogout": "නිෂ්ක්‍රමණය සඳහා ඔබගේ අයැදුම නිෂ්ප්‍රභා කෙරුනේ එය යොමු කොට ඇත්තේ භින්න(කැඩුනු) බ්‍රවුසරයකින් හෝ නිවේෂණය කෙරෙමින් පවතින ප්‍රොක්සියක් වෙතින් යැයි බැලූ බැල්මට පෙනෙන බැවිනි.",
        "createacct-another-realname-tip": "සැබෑ නාමය හෙළි කිරීම වෛකල්පිකයි.\nඔබ විසින් එය හෙළි කල හොත්, ඔබගේ කෘතීන් සඳහා ඔබහට කතෘ-බුහුමන් පිරිනැමීමට එය භාවිතා කරනු ඇත.",
        "pt-login": "පිවිසෙන්න",
+       "pt-login-button": "පිවිසෙන්න",
        "pt-createaccount": "ගිණුමක් තනන්න",
        "pt-userlogout": "නික්මීම",
        "php-mail-error-unknown": "php mail() ශ්‍රිතයේ හඳුනානොගත් ගැටළුවකි",
        "resetpass-temp-password": "තාවකාලික මුර-පදය:",
        "resetpass-abort-generic": "මුරපදය වෙනස් කිරීම විස්තීරණය මඟින් වලකා ඇත.",
        "resetpass-expired": "ඔබගේ මුරපදය කල් ඉකුත්වී ඇත.කරුණාකර නව මුරපදයක් සකස් කරන්න.",
-       "resetpass-expired-soft": "ඔබගේ මුරපදය කල් ඉකුත්වී ඇති අතර එය නැවත සකස් කල යුතුය.කරුණාකර දැන් මුරපදයක් තෝරන්න.නවත්තන්න click කිරීමෙන් එය පසුව සකස් කල හැකිය.",
+       "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|තාවකාලික මුරපදයක් ඊ-තැපෑල හරහා ගෙන්වා ගැනීමට එක් ක්ෂේත්‍රයක් පුරවන්න}}",
        "changeemail-submit": "විද්‍යුත් තැපෑල  වෙනස් කරන්න",
        "changeemail-cancel": "අවලංගු කරන්න",
        "changeemail-throttled": "ඔබ විසින් මෑතදී  පමණට වඩා වාර ගණනක් පිවිසීමෙහි උත්සාහයන් දරා ඇත.\nයළි උත්සාහ කිරීමට පෙර $1 වේලාවක් රැඳී සිටින්න.",
+       "resettokens": "සංකේත නැවත සකසන්න",
+       "resettokens-legend": "සංකේත නැවත සකසන්න",
+       "resettokens-tokens": "සංකේත:",
        "bold_sample": "තදකුරු පෙළ",
        "bold_tip": "තදකුරු පෙළ",
        "italic_sample": "ඇලකුරු පෙළ",
        "currentrev": "නවතම සංශෝධනය",
        "currentrev-asof": "$1 වන විට නවතම සංශෝධනය",
        "revisionasof": "$1 තෙක් සංශෝධනය",
-       "revision-info": "$1 වන විට $2 විසින් සිදු කර ඇති සංශෝධන",
+       "revision-info": "$1 වන විට {{GENDER:$6|$2}}$7 විසින් සිදු කර ඇති සංශෝධන",
        "previousrevision": "← පැරණි සංශෝධනය",
        "nextrevision": "නව සංශෝධනය →",
        "currentrevisionlink": "වත්මන් සංශෝධනය",
        "revdelete-confirm": "කරුණාකර ඔබ මෙය කිරීමට අදහස් කරන බවත්,එහි ප්‍රතිඵලය අවබෝධ කර ගන්නා බවත්,මෙය සිදු කරනුයේ [[{{MediaWiki:Policy-url}}| ප්‍රතිපත්තියට]] අනුකූලව බවත් තහවුරු කරන්න.",
        "revdelete-suppress-text": "යටපත්කිරීම පහත අවස්ථාවන්හිදී  '''පමණක්''' භාවිතා කල යුතුය:\n* නුසුදුසු පෞද්ගලික තොරතුරු\n*: ''නිවසෙහි ලිපින හා දුරකතන අංක ආදිය.''",
        "revdelete-legend": "දෘශ්‍ය අවහිරකිරීම් සකසන්න",
-       "revdelete-hide-text": "සංශෝධන පෙළ සඟවන්න",
+       "revdelete-hide-text": "සංශෝධන පෙළ",
        "revdelete-hide-image": "ගොනු අන්තර්ගතය සඟවන්න",
        "revdelete-hide-name": "ක්‍රියාව හා ඉලක්කය සඟවන්න",
        "revdelete-hide-comment": "සංස්කරණ පරිකථනය",
        "searchprofile-advanced-tooltip": "අභිරුචි නාමඅවකාශයන්හි ගවේෂණය කරන්න",
        "search-result-size": "$1 ({{PLURAL:$2|වචන 1 ක්|වචන $2 ක්}})",
        "search-result-category-size": "{{PLURAL:$1|එක් සාමාජීකයෙන්|සාමාජීකයන් $1 ක්}} ({{PLURAL:$2|එක් උප-ප්‍රවර්ගයක්|උප-ප්‍රවර්ග $2 ක්}}, {{PLURAL:$3|එක් ගොනුවක්|ගොනු $3 ක්}})",
-       "search-result-score": "අදාළතාව: $1%",
        "search-redirect": "($1 යළි-යොමු කරන්න)",
        "search-section": "($1 ඡේදය)",
        "search-file-match": "(ගොනු දත්ත සැසදේ)",
        "userrights-no-interwiki": "අනෙකුත් විකියන්හි පරිශීලක හිමිකම් සංස්කරණය කිරීමට ඔබහට අවසර නොමැත.",
        "userrights-nodatabase": "$1 දත්ත-ගබඩාව නොපවතියි හෝ ස්ථානීක නොවෙයි.",
        "userrights-nologin": "පරිශීලක හිමිකම් ප්‍රදානය කරනු වස්, ඔබ පරිපාලක ගිණුමකින්  [[Special:UserLogin|පුවිෂ්ට විය]] යුතුය.",
-       "userrights-notallowed": "පරà·\92à·\81à·\93ලà¶\9a à·\84à·\92මà·\92à¶\9aමà·\8a à¶\91à¶\9aà·\8a à¶\9aà·\92රà·\93මට à·\84à·\9d à¶\89à·\80තà·\8a à¶\9aà·\92රà·\93මට à¶\94බà¶\9cà·\9a à¶\9cà·\92ණà·\94මට à¶\85à·\80à·\83ර à¶±à·\90ත.",
+       "userrights-notallowed": "පරිශීලක හිමිකම් එක් කිරීමට හෝ ඉවත් කිරීමට ඔබට අවසර නැත.",
        "userrights-changeable-col": "ඔබට වෙනස් කල හැකි කණ්ඩායම්",
        "userrights-unchangeable-col": "ඔබට වෙනස් කල නොහැකි කණ්ඩායම්",
        "userrights-irreversible-marker": "$1*",
        "uploadwarning": "උඩුගත කිරීම් අවවාදයකි",
        "uploadwarning-text": "කරුණාකර පහත ගොනු විස්තරය වෙනස් කර නැවත උත්සාහ කරන්න.",
        "savefile": "ගොනුව සුරකින්න",
-       "uploadedimage": "\"[[$1]]\" උඩුගත කරන ලදි",
-       "overwroteimage": " \"[[$1]]\" හි නව අනුවාදයක් උඩුගත කරන ලදි",
        "uploaddisabled": "උඩුගත කිරීම් අක්‍රීය කර ඇත",
        "copyuploaddisabled": "URL මගින් උඩුගත කිරීම අක්‍රීය කොට ඇත.",
        "uploaddisabledtext": " {{SITENAME}} හි ගොනු උඩුගත කිරීම් අක්‍රීය කර ඇත.",
        "notanarticle": "අන්තර්ගත පිටුවක් නොවේ",
        "notvisiblerev": "සංශෝධනය මකාදමා ඇත",
        "watchlist-details": "සාකච්ඡා පිටු නොගිණුනු කල, ඔබගේ මුර ලැයිස්තුවෙහි {{PLURAL:$1|එක් පිටුවක්|පිටු $1 ක්}} ඇත.",
-       "wlheader-enotif": "විද්‍යුත්-තැපැල් දැනුම්දීම සක්‍රීය කෙරිණි.",
-       "wlheader-showupdated": "ඔබ විසින් ඒවාට අවසන් වරට පිවිසුනු පසුව වෙනස්කෙරුනු පිටු  '''තදකුරු''' වලින් පෙන්වා ඇත",
+       "wlheader-enotif": "විද්‍යුත් තැපැල් දැනුම්දීම සක්‍රීයයි.",
+       "wlheader-showupdated": "ඔබ විසින් ඒවාට අවසන් වරට පිවිසුනු පසුව වෙනස්ව තිබෙන පිටු <strong>තදකුරු</strong> වලින් පෙන්වා ඇත.",
+       "wlnote": "පහත දැක්වෙන්නේ $3, $4 මෙන්, අවසන් {{PLURAL:$2|පැය|පැය '''$2''' }} තුලදී සිදු කෙරී ඇති {{PLURAL:$1|අවසන් වෙනස්වීම්යි |අවසන් වෙනස්වීම්  '''$1''' යි}}.",
        "wlshowlast": "පසුගිය පැය $1 දින $2 $3 පෙන්වන්න",
        "watchlist-options": "තෝරාගතහැකි මුර ලැයිස්තු සැකසුම්",
        "watching": "මුර කරමින්...",
        "duplicate-defaultsort": "'''අවවාදයයි:''' \"$2\" පෙරනිමි සුබෙදුම් යතුර විසින් ‍පූර්ව පෙරනිමි සුබෙදුම් යතුර වූ \"$1\" අතික්‍රමණය කරයි.",
        "version": "අනුවාදය",
        "version-extensions": "ස්ථාපිත ප්‍රසර්ජනයන්",
+       "version-skins": "ඡවිය",
        "version-specialpages": "විශේෂ පිටු",
        "version-parserhooks": "ව්‍යාකරණ විග්‍රහක හසුරු",
        "version-variables": "විචල්‍යයන්",
        "version-antispam": "ස්පෑම වැලැක්වුම",
-       "version-skins": "ඡවිය",
        "version-other": "වෙනත්",
        "version-mediahandlers": "මාධ්‍ය හසුරුවනය",
        "version-hooks": "හසුරු",
index a27497b..4bacc61 100644 (file)
        "talkpagelinktext": "Diskusia",
        "specialpage": "Špeciálna stránka",
        "personaltools": "Osobné nástroje",
-       "postcomment": "Nová sekcia",
        "articlepage": "Zobraziť stránku",
        "talk": "Diskusia",
        "views": "Zobrazení",
        "externaldberror": "Buď nastala chyba externej autentifikačnej databázy alebo vám nie je povolené aktualizovať váš externý účet.",
        "login": "Prihlásiť",
        "nav-login-createaccount": "Prihlásenie / vytvorenie účtu",
-       "loginprompt": "Na prihlásenie do {{GRAMMAR:genitív|{{SITENAME}}}} musíte mať zapnuté koláčiky (cookies).",
        "userlogin": "Prihlásenie / vytvorenie účtu",
        "userloginnocreate": "Prihlásiť",
        "logout": "Odhlásiť",
        "searchprofile-advanced-tooltip": "Hľadať vo vymenovaných menných priestoroch",
        "search-result-size": "$1 ({{PLURAL:$2|1 slovo|$2 slová|$2 slov}})",
        "search-result-category-size": "{{PLURAL:$1|1 člen|$1 členovia|$1 členov}} ({{PLURAL:$2|1 podkategória|$2 podkategórie|$2 podkategórií}}, {{PLURAL:$3|1 súbor|$3 súbory|$3 súborov}})",
-       "search-result-score": "Relevancia: $1%",
        "search-redirect": "(presmerovanie $1)",
        "search-section": "(sekcia $1)",
        "search-suggest": "Mali ste na mysli „$1“?",
        "uploadwarning": "Varovanie pri nahrávaní",
        "uploadwarning-text": "Prosím, zmeňte popis súboru nižšie a skúste to znova.",
        "savefile": "Uložiť súbor",
-       "uploadedimage": "nahraný „[[$1]]“",
-       "overwroteimage": "bola nahraná nová verzia „[[$1]]“",
        "uploaddisabled": "Prepáčte, nahrávanie je vypnuté.",
        "copyuploaddisabled": "Nahrávanie prostredníctvom URL nie je povolené.",
        "uploaddisabledtext": "Nahrávanie súborov je vypnuté.",
        "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.",
        "wlshowlast": "Zobraziť posledných $1 hodín $2 dní $3",
        "watchlist-options": "Nastavenia zoznamu sledovaných",
        "watching": "Pridávam do zoznamu sledovaných...",
        "duplicate-defaultsort": "Upozornenie: Štandardný kláves na zoraďovanie „$2“ nahrádza starý kláves „$1“.",
        "version": "Verzia",
        "version-extensions": "Nainštalované rozšírenia",
+       "version-skins": "Témy vzhľadu",
        "version-specialpages": "Špeciálne stránky",
        "version-parserhooks": "Prípojné body syntaktického analyzátora",
        "version-variables": "Premenné",
        "version-antispam": "Ochranu proti spamu",
-       "version-skins": "Témy vzhľadu",
        "version-other": "Iné",
        "version-mediahandlers": "Obsluha multimédií",
        "version-hooks": "Prípojné body",
index 75a2c7d..fb31594 100644 (file)
        "delete-edit-reasonlist": "Uredi razloge za brisanje",
        "delete-toobig": "Ta stran ima obsežno zgodovino urejanja, tj. čez $1 {{PLURAL:$1|redakcijo|redakciji|redakcije|redakcij}}.\nIzbris takšnih strani je bil omejen v izogib neželenim motnjam {{GRAMMAR:dative|{{SITENAME}}}}.",
        "delete-warning-toobig": "Ta stran ima obsežno zgodovino urejanja, tj. čez $1 {{PLURAL:$1|redakcijo|redakciji|redakcije|redakcij}}.\nNjeno brisanje lahko zmoti obratovanje zbirke podatkov {{GRAMMAR:dative|{{SITENAME}}}};\nnadaljujte s previdnostjo.",
+       "delete-cantedit": "Strani ne morete izbrisati, ker je nimate dovoljenja urejati.",
        "deleting-backlinks-warning": "'''Opozorilo:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druge strani]] se povezujejo na ali vključujejo stran, ki jo nameravate izbrisati.",
        "rollback": "Vrni spremembe",
        "rollback_short": "Vrni",
index 28e64ee..3c0729d 100644 (file)
        "talkpagelinktext": "Dischkur",
        "specialpage": "Spezialseyte",
        "personaltools": "Meine Werkzeuge",
-       "postcomment": "Neuer Obschnitt",
        "articlepage": "Inhaltsseite oazeiga",
        "talk": "Dischkur",
        "views": "Oansichta",
        "externaldberror": "Entweder is leit a Fahler bei der externa Authentifizierung vur, oder du darfst dei externes Benutzerkonto ne aktualisiera.",
        "login": "Oanmelda",
        "nav-login-createaccount": "Oamelda / a Konto oalega",
-       "loginprompt": "Zer Oameldung missa Cookies aktiviert sei.",
        "userlogin": "Oanmelda / Nutzerkonto erstella",
        "logout": "Oabmelda",
        "userlogout": "Oabmelda",
        "file-thumbnail-no": "Dar Dateinoame beginnt miet <strong>$1</strong>. Dies deutet uff a Bild verringerter Griße ''(thumbnail)'' hin.\nBitte priefe, ob du doas Bild ei voller Ufflesung vorliegen host und loade dieses under damm Originalnoama huch.",
        "file-exists-duplicate": "Diese Datei ies a Duplikat dar fulgenda {{PLURAL:$1|Datei|$1 Dateien}}:",
        "file-deleted-duplicate": "Anne identische Datei dieser Datei ([[:$1]]) wurde frieher geläscht. Ieberpriefe doas Läsch-Logbuch, bevor du se huchlädst.",
-       "uploadedimage": "hoot „[[$1]]“ huchgeloada",
-       "overwroteimage": "hoot anne neue Version vu „[[$1]]“ huchgeloada",
        "uploaddisabled": "Huchlada deaktiviert",
        "uploaddisabledtext": "Doas Huchloada vu Dateien ies deaktiviert.",
        "uploadscripted": "Diese Datei enthält HTML- oder Scriptcode, dar irrtiemlich vu a'm Webbrowser ausgefiehrt waan kennte.",
        "watchlist-details": "Du beobachtest {{PLURAL:$1|1 Seite|$1 Seita}}.",
        "wlheader-enotif": "Dar E-Mail-Benoachrichtigungsdienst ies aktiviert.",
        "wlheader-showupdated": "Seyta miet noo ne gesehenen Änderunga waan '''fett''' dargestellt.",
+       "wlnote": "Is {{PLURAL:$1|folgt de letzte Änderung|folga de letzta '''$1''' Änderunga}} dar letzta {{PLURAL:$2|Stunde|'''$2''' Stunda}}.",
        "wlshowlast": "Zeige de Änneronga dar letzta $1 Stonda, $2 Taage oder $3.",
        "watchlist-options": "Oazeegeoptiona",
        "watching": "Beobachta …",
index aaa8f1a..7587cea 100644 (file)
        "talkpagelinktext": "Wadahadal",
        "specialpage": "Bogaga qaaska ah",
        "personaltools": "Qalabkaaga",
-       "postcomment": "Maqaal cusub",
        "articlepage": "Fiiri bogga qoraalka",
        "talk": "Wadahadal",
        "views": "Muuqaalka",
        "password-change-forbidden": "Ma badali kartid Eraysir ee wiki.",
        "login": "Gudaha gal",
        "nav-login-createaccount": "Gudaha gal / sameyso akoon",
-       "loginprompt": "Waa in aad shidaa cookies'ka hadii aad rabto in aad soo gasho {{SITENAME}}.",
        "userlogin": "Gudaha gal / sameyso akoon",
        "userloginnocreate": "Gudaha gal",
        "logout": "Ka bax",
        "large-file": "waxaa loo baahanyahay in ay san file'yada ka weynaan $1;\nfile'kaan waa  $2.",
        "uploadwarning": "Digniin waxa aad soo gelineesid",
        "savefile": "Faylka kaydi",
-       "uploadedimage": "la soo galiyay \"[[$1]]\"",
-       "overwroteimage": "waxaa la soo galiyay nuuc cusub oo ah \"[[$1]]\"",
        "uploaddisabled": "wax soo gelinta waa la xiray.",
        "copyuploaddisabled": "wax soo gelinta dhinaca URL:ka waa la xiray",
        "uploaddisabledtext": "soo gelinta faylyada waa la xiray",
index 31a2dba..cda9eba 100644 (file)
        "searchprofile-advanced-tooltip": "Kërkimi në hapësina",
        "search-result-size": "$1 ({{PLURAL:$2|1 fjalë|$2 fjalë}})",
        "search-result-category-size": "{{PLURAL:$1|1 anëtar|$1 anëtarë}} ({{PLURAL:$2|1 nën-kategori|$2 nën-kategori}}, {{PLURAL:$3|1 skedë|$3 skeda}})",
-       "search-result-score": "Përkatësia: $1%",
        "search-redirect": "(përcjellim $1)",
        "search-section": "(seksioni $1)",
        "search-suggest": "Mos kishit në mendje: $1",
        "uploadwarning": "Kujdes dhënie",
        "uploadwarning-text": "Ju lutemi modifikoni përshkrimin e skedës dhe provojen përsëri.",
        "savefile": "Ruaj skedën",
-       "uploadedimage": "dha \"[[$1]]\"",
-       "overwroteimage": "dha dhe zëvendësoi me një version të ri të \"[[$1]]\"",
        "uploaddisabled": "Ndjesë, dhëniet janë bllokuar në këtë shërbyes dhe nuk është gabimi juaj.",
        "copyuploaddisabled": "Ngarkimi nga URL-ja u çaktivizua.",
        "uploaddisabledtext": "Ngarkimi i skedave është i ndaluar.",
        "watchlist-details": "{{PLURAL:$1|$1 faqe|$1 faqe}} nën mbikqyrje duke mos numëruar faqet e diskutimit.",
        "wlheader-enotif": "Njoftimi me email është lejuar.",
        "wlheader-showupdated": "Faqet që kanë ndryshuar nga vizita juaj e fundit do të tregohen të '''trasha'''",
+       "wlnote": "Më poshtë {{PLURAL:$1|është ndryshimi i fundit|janë '''$1''' ndryshimet e fundit}} në {{PLUARAL:$2:orën e fundit|'''$2''' orët e fundit}}, që nga $3, $4.",
        "wlshowlast": "Trego $1 orët $2 ditët $3",
        "watchlist-options": "Mundësitë e listës mbikqyrëse",
        "watching": "Duke mbikqyrur...",
index 549d25b..5a3a2f9 100644 (file)
        "category-empty": "<div style=\"margin:2em 1em 0 1em; padding:0.5em; border:1px solid #AAA; text-align:center;\">''Ова категорија тренутно не садржи странице или датотеке.''</div>",
        "hidden-categories": "{{PLURAL:$1|Сакривена категорија|Сакривене категорије}}",
        "hidden-category-category": "Сакривене категорије",
-       "category-subcat-count": "{{PLURAL:$2|1=Ова категорија садржи само следећу поткатегорију.|Ова категорија има {{PLURAL:$1|следећу поткатегорију|следеће $1 поткатегорије|следећих $1 поткатегорија}}, од укупно $2.}}",
+       "category-subcat-count": "{{PLURAL:$2|1=Ова категорија садржи само следећу поткатегорију.|Ова категорија има {{PLURAL:$1|1=следећу поткатегорију|следеће $1 поткатегорије|следећих $1 поткатегорија}}, од укупно $2.}}",
        "category-subcat-count-limited": "Ова категорија садржи {{PLURAL:$1|следећу поткатегорију|следеће $1 поткатегорије|следећих $1 поткатегорија}}.",
        "category-article-count": "{{PLURAL:$2|1=Ова категорија садржи само следећу страницу.|{{PLURAL:$1|Следећа страница је|Следеће $1 странице су|Следећих $1 страница је}} у овој категорији, од укупно $2.}}",
        "category-article-count-limited": "{{PLURAL:$1|1=Следећа страница је|Следеће $1 странице су|Следећих $1 страница је}} у овој категорији.",
-       "category-file-count": "{{PLURAL:$2|1=Ова категорија садржи само следећу датотеку.|{{PLURAL:$1|Следећа датотека је|Следеће $1 датотеке су|Следећих $1 датотека је}} у овој категорији, од укупно $2.}}",
+       "category-file-count": "{{PLURAL:$2|1=Ова категорија садржи само следећу датотеку.|{{PLURAL:$1|1=Следећа датотека је|Следеће $1 датотеке су|Следећих $1 датотека је}} у овој категорији, од укупно $2.}}",
        "category-file-count-limited": "{{PLURAL:$1|1=Следећа датотека је|Следеће $1 датотеке су|Следећих $1 датотека је}} у овој категорији.",
        "listingcontinuesabbrev": "наст.",
        "index-category": "Пописане странице",
        "preferences": "Подешавања",
        "mypreferences": "Подешавања",
        "prefs-edits": "Број измена:",
-       "prefsnologintext2": "Морате бити $1 да бисте мењали своја подешавања.",
+       "prefsnologintext2": "Морате бити пријављени да бисте мењали своја подешавања.",
        "prefs-skin": "Тема",
        "skin-preview": "Прегледај",
        "datedefault": "Свеједно",
        "mywatchlist": "Списак надгледања",
        "watchlistfor2": "За $1 $2",
        "nowatchlist": "Ваш списак надгледања је празан.",
-       "watchlistanontext": "Морате бити $1 да бисте гледали и уређивали ставке на вашем списку надгледања.",
+       "watchlistanontext": "Морате бити пријављени да бисте гледали и уређивали ставке на вашем списку надгледања.",
        "watchnologin": "Нисте пријављени",
        "addwatch": "Додај на списак надгледања",
        "addedwatchtext": "Страница „[[:$1]]“ је додата на ваш [[Special:Watchlist|списак надгледања]].\nБудуће измене ове странице и њене странице за разговор биће наведене тамо.",
        "delete-edit-reasonlist": "Уреди разлоге брисања",
        "delete-toobig": "Ова страница има велику историју, преко $1 {{PLURAL:$1|измене|измене|измена}}.\nБрисање таквих страница је ограничено да би се спречило случајно оптерећење сервера.",
        "delete-warning-toobig": "Ова страница има велику историју, преко $1 {{PLURAL:$1|измене|изменe|измена}}.\nЊено брисање може пореметити базу података, стога поступајте с опрезом.",
+       "delete-cantedit": "Не можете обрисати страницу коју не можете уређивати.",
        "deleting-backlinks-warning": "'''Упозорење:''' бришете страницу која је укључена у [[Special:WhatLinksHere/{{FULLPAGENAME}}|друге странице]] или друге странице воде на њу.",
        "rollback": "Врати измене",
        "rollback_short": "Врати",
        "autoblockid": "Аутоматско блокирање #$1",
        "block": "Блокирај корисника",
        "unblock": "Деблокирај корисника",
-       "blockip": "Блокирај корисника",
+       "blockip": "Блокирај {{GENDER:$1|корисника|корисницу}}",
        "blockip-legend": "Блокирај корисника",
        "blockiptext": "Користите доњи образац да бисте забранили приступ за писање с одређене ИП адресе или корисничког имена.\nОво би требало да вршите само ради спречавања вандализма, у складу са [[{{MediaWiki:Policy-url}}|смерницама]].\nИзаберите конкретан разлог испод (пример: навођење конкретних страница које су вандализоване).",
        "ipaddressorusername": "ИП адреса или корисничко име:",
index ce56980..b386295 100644 (file)
        "category-empty": "<div style=\"margin:2em 1em 0 1em; padding:0.5em; border:1px solid #AAA; text-align:center;\">''Ova kategorija trenutno ne sadrži stranice ili datoteke.''</div>",
        "hidden-categories": "{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}}",
        "hidden-category-category": "Sakrivene kategorije",
-       "category-subcat-count": "{{PLURAL:$2|1=Ova kategorija sadrži samo sledeću potkategoriju.|Ova kategorija ima {{PLURAL:$1|sledeću potkategoriju|sledeće $1 potkategorije|sledećih $1 potkategorija}}, od ukupno $2.}}",
+       "category-subcat-count": "{{PLURAL:$2|1=Ova kategorija sadrži samo sledeću potkategoriju.|Ova kategorija ima {{PLURAL:$1|1=sledeću potkategoriju|sledeće $1 potkategorije|sledećih $1 potkategorija}}, od ukupno $2.}}",
        "category-subcat-count-limited": "Ova kategorija sadrži {{PLURAL:$1|sledeću potkategoriju|sledeće $1 potkategorije|sledećih $1 potkategorija}}.",
        "category-article-count": "{{PLURAL:$2|1=Ova kategorija sadrži samo sledeću stranicu.|{{PLURAL:$1|Sledeća stranica je|Sledeće $1 stranice su|Sledećih $1 stranica je}} u ovoj kategoriji, od ukupno $2.}}",
        "category-article-count-limited": "{{PLURAL:$1|1=Sledeća stranica je|Sledeće $1 stranice su|Sledećih $1 stranica je}} u ovoj kategoriji.",
-       "category-file-count": "{{PLURAL:$2|1=Ova kategorija sadrži samo sledeću datoteku.|{{PLURAL:$1|Sledeća datoteka je|Sledeće $1 datoteke su|Sledećih $1 datoteka je}} u ovoj kategoriji, od ukupno $2.}}",
+       "category-file-count": "{{PLURAL:$2|1=Ova kategorija sadrži samo sledeću datoteku.|{{PLURAL:$1|1=Sledeća datoteka je|Sledeće $1 datoteke su|Sledećih $1 datoteka je}} u ovoj kategoriji, od ukupno $2.}}",
        "category-file-count-limited": "{{PLURAL:$1|1=Sledeća datoteka je|Sledeće $1 datoteke su|Sledećih $1 datoteka je}} u ovoj kategoriji.",
        "listingcontinuesabbrev": "nast.",
        "index-category": "Popisane stranice",
index 6178e4c..8cc2bbd 100644 (file)
        "talkpagelinktext": "Taki",
        "specialpage": "Spesrutu papira",
        "personaltools": "Mi eigi wrokosani",
-       "postcomment": "Poti wan boskopu",
        "articlepage": "Luku a papira",
        "talk": "Taki",
        "views": "Views",
        "yourdomainname": "Yu domein:",
        "login": "Psa kon",
        "nav-login-createaccount": "Psa kon / meki wan account",
-       "loginprompt": "Yu musu man kisi cookies fu man psa kon na {{SITENAME}}.",
        "userlogin": "Psa kon / meki wan account",
        "logout": "Psa gwe",
        "userlogout": "Psa gwe",
        "fileuploadsummary": "Infrumasi:",
        "uploadwarning": "Atessi fu uploti",
        "savefile": "Gefre oponaki",
-       "uploadedimage": "lai \"[[$1]]\" poti",
-       "overwroteimage": "abi wan nyun si fu \"[[$1]]\" e uploti",
        "watchthisupload": "Disi papira si",
        "license-nopreview": "(No fusi)",
        "listfiles_search_for": "Suku na gefre:",
index d229fba..edfbeb0 100644 (file)
        "talkpagelinktext": "Diskussion",
        "specialpage": "Spezioalsiede",
        "personaltools": "Persöönelke Reewen",
-       "postcomment": "Näi Stuk",
        "articlepage": "Siede",
        "talk": "Diskussion",
        "views": "Anwiesengen",
        "externaldberror": "Äntweeder deer lait n Failer bie ju externe Authentifizierenge foar, of du duurst din extern Benutzerkonto nit aktualisierje.",
        "login": "Anmäldje",
        "nav-login-createaccount": "Anmäldje",
-       "loginprompt": "Uum sik bie {{SITENAME}} anmäldje tou konnen, mouten Cookies aktivierd weese.",
        "userlogin": "Anmäldje / Benutserkonto moakje",
        "userloginnocreate": "Anmäldje",
        "logout": "Oumäldje",
        "searchprofile-advanced-tooltip": "Säik in wiedere Noomensruume",
        "search-result-size": "$1 ({{PLURAL:$2|1 Woud|$2 Woude}})",
        "search-result-category-size": "{{PLURAL:$1|1 Siede|$1 Sieden}} ({{PLURAL:$2|1 Unnerkategorie|$2 Unnerkategorien}}, {{PLURAL:$3|1 Doatäi|$3 Doatäie}})",
-       "search-result-score": "Relevanz: $1 %",
        "search-redirect": "(Wiederlaitenge $1)",
        "search-section": "(Apsnit $1)",
        "search-suggest": "Meendest du $1?",
        "uploadwarning": "Woarskauenge",
        "uploadwarning-text": "Annerje hierunner ju Doatäibeskrieuwenge un fersäik dät nochmoal.",
        "savefile": "Doatäi spiekerje",
-       "uploadedimage": "\"[[$1]]\" hoochleeden",
-       "overwroteimage": "häd ne näie Version fon „[[$1]]“ hoochleeden",
        "uploaddisabled": "Äntskeeldigenge, dät Hoochleeden is apstuuns deaktivierd.",
        "copyuploaddisabled": "Dät Hoochleeden fon URLs is deaktivierd",
        "uploaddisabledtext": "Dät Hoochleeden fon Doatäie is nit muugelk.",
        "watchlist-details": "Jie beooboachtje {{PLURAL:$1|1 Siede|$1 Sieden}} (Diskussionssieden wuuden hier nit meetäld).",
        "wlheader-enotif": "E-Mail-Beskeed is aktivierd.",
        "wlheader-showupdated": "Sieden, do ätter dien lääste Besäik annerd wuuden sunt, wäide '''fat''' deerstoald.",
+       "wlnote": "Hier {{PLURAL:$1|foulget do lääste Annerenge|foulgje do lääste '''$1''' Annerengen}} fon do lääste {{PLURAL:$2|Uur|'''$2''' Uuren}}.",
        "wlshowlast": "Wies do lääste $1 Uuren, $2 Deege, of $3 (in do lääste 30 Deege).",
        "watchlist-options": "Anwiesoptione",
        "watching": "Beooboachtje …",
        "duplicate-defaultsort": "Paas ap: Die Sortierengskoai „$2“ uurskrift dän toufoarne ferwoanden Koai „$1“.",
        "version": "Version",
        "version-extensions": "Installierde Ärwiederengen",
+       "version-skins": "Benutseruurflächen",
        "version-specialpages": "Spezioalsieden",
        "version-parserhooks": "Parser-Hooks",
        "version-variables": "Variablen",
        "version-antispam": "Spamskuts",
-       "version-skins": "Benutseruurflächen",
        "version-other": "Uurswät",
        "version-mediahandlers": "Medien-Handlere",
        "version-hooks": "Snitsteeden ''(Hooks)''",
index 265dfe8..0002de3 100644 (file)
        "talkpagelinktext": "Obrolan",
        "specialpage": "Kaca Husus",
        "personaltools": "Parabot pribadi",
-       "postcomment": "Bagéan anyar",
        "articlepage": "Témbongkeun kaca eusi",
        "talk": "Sawala",
        "views": "Témbongan",
        "externaldberror": "Aya kasalahan dina pangkalan data oténtikasi luar, atawa anjeun mémang teu diwenangkeun pikeun ngaropéa rekening luar anjeun.",
        "login": "Asup log",
        "nav-login-createaccount": "Nyieun akun/asup log",
-       "loginprompt": "Anjeun kudu boga ''cookies'' sangkan bisa asup log ka {{SITENAME}}.",
        "userlogin": "Asup log / jieun akun",
        "userloginnocreate": "Asup log",
        "logout": "Kaluar log",
        "searchprofile-advanced-tooltip": "Paluruh di rohang ngaran anu tangtu",
        "search-result-size": "$1 ({{PLURAL:$2|1 kecap|$2 kecap}})",
        "search-result-category-size": "{{PLURAL:$1|1 anggota|$1 anggota}} ({{PLURAL:$2|1 subkatégori|$2 subkatégori}}, {{PLURAL:$3|1 berkas|$3 berkas}})",
-       "search-result-score": "Kacocogan: $1%",
        "search-redirect": "(alihan $1)",
        "search-section": "(bagean $1)",
        "search-suggest": "Meureun maksud Anjeun nyaéta: $1",
        "uploadwarning": "Pépéling ngamuat",
        "uploadwarning-text": "Ropéa pedaran berkas di handap terus cobaan deui.",
        "savefile": "Simpen koropak",
-       "uploadedimage": "ngunggah \"[[$1]]\"",
-       "overwroteimage": "Muatkeun koropak nu anyar ti \"[[$1]]\"",
        "uploaddisabled": "Punten, ngamuat ayeuna ditumpurkeun.",
        "uploaddisabledtext": "Fungsi ngamuat koropak ditumpurkeun.",
        "uploadscripted": "Koropak ieu ngandung kode HTML atawa skrip nu bisa dibaca ngaco ku panyungsi ramat (''web browser'').",
        "watchlist-details": "Aya {{PLURAL:$1|$1 kaca|$1 kaca}} nu ku anjeun diawaskeun, teu kaasup kaca obrolan/sawala.",
        "wlheader-enotif": "Pangémbar surélék difungsikeun.",
        "wlheader-showupdated": "Kaca nu robah ti panungtungan anjeun sindang ditémbongkeun kalawan '''kandel'''",
+       "wlnote": "Di handap ieu mangrupa $1 {{PLURAL:$1|robahan|robahan}} ahir salila '''$2''' jam.",
        "wlshowlast": "Témbongkeun $1 jam $2 poé $3 ahir",
        "watchlist-options": "Pilihan awaskeuneun",
        "watching": "Ngawaskeun...",
index fcd8b94..d4aa3c9 100644 (file)
        "userjspreview": "'''Kom ihåg att du bara testar/förhandsgranskar ditt JavaScript.'''\n'''Det har inte sparats än!'''",
        "sitecsspreview": "'''Kom ihåg att du bara förhandsgranskar detta CSS.''' \n'''Det har ännu inte sparats!'''",
        "sitejspreview": "'''Kom ihåg att du bara förhandsgranskar denna JavaScript-kod.'''\n'''Det har ännu inte sparats!'''",
-       "userinvalidcssjstitle": "'''Varning:''' Skalet \"$1\" finns inte. Kom ihåg att .css- och .js-sidor för enskilda användare börjar på liten bokstav. Exempel: {{ns:user}}:Foo/vector.css i stället för {{ns:user}}:Foo/Vector.css.",
+       "userinvalidcssjstitle": "'''Varning:''' Utseendet \"$1\" finns inte. Kom ihåg att .css- och .js-sidor för enskilda användare börjar på liten bokstav. Exempel: {{ns:user}}:Foo/vector.css i stället för {{ns:user}}:Foo/Vector.css.",
        "updated": "(Uppdaterad)",
        "note": "'''Obs!'''",
        "previewnote": "'''Kom ihåg att detta bara är en förhandsvisning.'''\nDina ändringar har ännu inte sparats!",
        "prefs-files": "Filer",
        "prefs-custom-css": "personlig CSS",
        "prefs-custom-js": "personlig JavaScript",
-       "prefs-common-css-js": "Delad CSS/JS för alla teman:",
+       "prefs-common-css-js": "Delad CSS/JS för alla utseenden:",
        "prefs-reset-intro": "Du kan använda den här sidan till att återställa dina inställningar till webbplatsens standardinställningar.\nDetta kan inte återställas.",
        "prefs-emailconfirm-label": "E-postbekräftelse:",
        "youremail": "E-post:",
        "delete-edit-reasonlist": "Redigera anledningar för radering",
        "delete-toobig": "Denna sida har en lång redigeringshistorik med mer än $1 {{PLURAL:$1|sidversion|sidversioner}}. Borttagning av sådana sidor har begränsats för att förhindra oavsiktliga driftstörningar på {{SITENAME}}.",
        "delete-warning-toobig": "Denna sida har en lång redigeringshistorik med mer än $1 {{PLURAL:$1|sidversion|sidversioner}}. Att radera sidan kan skapa problem med hanteringen av databasen på {{SITENAME}}; var försiktig.",
+       "delete-cantedit": "Du kan inte ta radera denna sida eftersom du inte har behörighet att redigera den.",
        "deleting-backlinks-warning": "'''Varning:'''\n[[Special:WhatLinksHere/{{FULLPAGENAME}}|Andra sidor]] länkar till eller inkluderar sidan som du är på väg att radera.",
        "rollback": "Rulla tillbaka ändringar",
        "rollback_short": "Tillbakarullning",
        "tooltip-preferences-save": "Spara inställningar",
        "tooltip-summary": "Skriv en kort sammanfattning",
        "interlanguage-link-title": "$1 - $2",
-       "common.css": "/* CSS som skrivs här påverkar alla skal */",
+       "common.css": "/* CSS som skrivs här påverkar alla utseenden */",
        "print.css": "/* CSS som skrivs här kommer att påverka utskriftsversionen */",
        "noscript.css": "/* CSS som placeras här kommer att påverka användare med JavaScript inaktiverat */",
        "group-autoconfirmed.css": "/* CSS som placeras här kommer bara att påverka bekräftade användare */",
        "log-name-pagelang": "Språkändringslogg",
        "log-description-pagelang": "Detta är en logg över ändringar i sidspråken.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ändrade}} sidspråket för $3 från $4 till $5.",
-       "default-skin-not-found": "Ojsan! Standardutseendet för din wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, är inte tillgängligt.\n\nDin installation verkar innehålla följande utseenden. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manualen: Utseendeinställningar] för information om hur dessa aktiveras och hur standard väljs.\n\n$2\n\n; Om du precis installerat MediaWiki:\n: Du installerade troligen från git, eller direkt från källkoden via någon annan metod. Detta är att förvänta.\n:* Försök att installera några utseenden från [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org:s utseendekatalog].\n:* Ladda ner [https://www.mediawiki.org/wiki/Download tarball-installeraren], som kommer med flera utseenden och tillägg. Du kan klipp-och-klistra in <code>skins/</code>-katalogen från den.\n: Att göra detta borde inte påverka ditt git-centralförvar om du är en MediaWiki-utvecklare.\n\n; Om du precis har uppgraderat MediaWiki:\n: MediaWiki 1.24 och nyare aktiverar ej längre automatiskt utseenden (se [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Automatisk identifiering av utseenden]). Du kan klistra in följande rader i <code>LocalSettings.php</code> för att aktivera alla för närvarande installerade utseenden:\n\n<pre>$3</pre>\n\n; Om du precis har ändrat i <code>LocalSettings.php</code>:\n: Dubbelkolla namnen för utseendena för att identifiera stavfel.",
-       "default-skin-not-found-no-skins": "Ojsan! Standardutseendet för din wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, är inte tillgängligt.\n\nDu har inga installerade utseenden.\n\n; Om du precis installerat MediaWiki:\n: Du installerade troligen från git, eller direkt från källkoden via någon annan metod. Detta är att förvänta.\n:* Försök att installera några utseenden från [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org:s utseendekatalog].\n:* Ladda ner [https://www.mediawiki.org/wiki/Download tarball-installeraren], som kommer med flera utseenden och tillägg. Du kan klipp-och-klistra in <code>skins/</code>-katalogen från den.\n: Att göra detta borde inte påverka ditt git-centralförvar om du är en MediaWiki-utvecklare. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manualen: Utseendeinställningar] för information om hur utseenden aktiveras och hur standardutseendet väljs.",
+       "default-skin-not-found": "Ojsan! Standardutseendet för din wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, är inte tillgängligt.\n\nDin installation verkar innehålla följande utseenden. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manualen: Utseendeinställningar] för information om hur dessa aktiveras och hur standard väljs.\n\n$2\n\n; Om du precis installerat MediaWiki:\n: Du installerade troligen från git, eller direkt från källkoden via någon annan metod. Detta är att förvänta. Försök att installera några utseenden från [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org:s utseendekatalog], genom att:\n:* Ladda ner [https://www.mediawiki.org/wiki/Download tarball-installeraren], som kommer med flera utseenden och tillägg. Du kan klipp-och-klistra in <code>skins/</code>-katalogen från den.\n:* Klona ett av <code>mediawiki/skins/*</code>-centralförvaren in i <code>skins/</code>-katalogen i din MediaWiki-installation.\n: Att göra detta borde inte påverka ditt git-centralförvar om du är en MediaWiki-utvecklare.\n\n; Om du precis har uppgraderat MediaWiki:\n: MediaWiki 1.24 och nyare aktiverar ej längre automatiskt utseenden (se [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Automatisk identifiering av utseenden]). Du kan klistra in följande rader i <code>LocalSettings.php</code> för att aktivera alla för närvarande installerade utseenden:\n\n<pre>$3</pre>\n\n; Om du precis har ändrat i <code>LocalSettings.php</code>:\n: Dubbelkolla namnen för utseendena för att identifiera stavfel.",
+       "default-skin-not-found-no-skins": "Ojsan! Standardutseendet för din wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, är inte tillgängligt.\n\nDu har inga installerade utseenden.\n\n; Om du precis installerat eller uppdaterat MediaWiki:\n: Du installerade troligen från git, eller direkt från källkoden via någon annan metod. Detta är att förvänta. MediaWiki 1.24 och nyare inkluderar inte några utseenden i det huvudsakliga centralförvaret. Försök att installera några utseenden från [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org:s utseendekatalog], genom att:\n:* Ladda ner [https://www.mediawiki.org/wiki/Download tarball-installeraren], som kommer med flera utseenden och tillägg. Du kan klipp-och-klistra in <code>skins/</code>-katalogen från den.\n* Klona ett av <code>mediawiki/skins/*</code>-centralförvaren in i <code>skins/</code>-katalogen i din MediaWiki-installation.\n: Att göra detta borde inte påverka ditt git-centralförvar om du är en MediaWiki-utvecklare. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manualen: Utseendeinställningar] för information om hur utseenden aktiveras och hur standardutseendet väljs.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (aktiverad)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''inaktiverad''')"
 }
index 2d064c7..47803e2 100644 (file)
@@ -13,7 +13,8 @@
                        "Stephenwanjau",
                        "לערי ריינהארט",
                        "아라",
-                       "Baba Tabita"
+                       "Baba Tabita",
+                       "Rich Farmbrough"
                ]
        },
        "tog-underline": "Wekea mstari viungo:",
        "talkpagelinktext": "Majadiliano",
        "specialpage": "Ukurasa maalumu",
        "personaltools": "Vifaa binafsi",
-       "postcomment": "Fungu jipya",
        "articlepage": "Onyesha kurasa zilizopo",
        "talk": "Majadiliano",
        "views": "Mitazamo",
        "hidetoc": "ficha",
        "collapsible-collapse": "Kunja",
        "collapsible-expand": "Tanua",
+       "confirmable-yes": "Ndio",
+       "confirmable-no": "Habana",
        "thisisdeleted": "Tazama au rudisha $1?",
        "viewdeleted": "Tazama $1?",
        "restorelink": "{{PLURAL:$1|sahihisho lililofutwa moja|masahihisho yaliyofutwa $1}}",
        "externaldberror": "Huenda kulikuwa na hitilafu ya database au labda hauruhusiwi kubadilisha akaunti yako ya nje.",
        "login": "Ingia",
        "nav-login-createaccount": "Ingia/ sajili akaunti",
-       "loginprompt": "Lazima tarakalishi yako ipokee kuki ili uweze kuingia kwenye {{SITENAME}}.",
        "userlogin": "Ingia/ sajili akaunti",
        "userloginnocreate": "Ingia",
        "logout": "Toka",
        "searchprofile-advanced-tooltip": "Tafuta katika maeneo ya wiki utakayoyachagua",
        "search-result-size": "$1 ({{PLURAL:$2|neno 1|maneno $2}})",
        "search-result-category-size": "{{PLURAL:$1|ukurasa 1|kurasa $1}} ({{PLURAL:$2|kijamii 1|vijamii $2}}, {{PLURAL:$3|faili 1|mafaili $3}})",
-       "search-result-score": "Kiwango cha ulinganisho na ulizo: $1%",
        "search-redirect": "(elekezo toka kwa $1)",
        "search-section": "(fungu $1)",
        "search-suggest": "Je, ulitaka kutafuta: $1",
        "uploadwarning": "Ilani kuhusu kupakia",
        "uploadwarning-text": "Tafadhali ubadilishe maelezo ya faili hapo chini, halafu jaribu tena.",
        "savefile": "Hifadhi faili",
-       "uploadedimage": "ameipakia \"[[$1]]\"",
-       "overwroteimage": "alipakia toleo jipya la \"[[$1]]\"",
        "uploaddisabled": "Upakiaji umelemazwa.",
        "copyuploaddisabled": "Kupakia kwa kupitia URL kumelemazwa.",
        "uploaddisabledtext": "Upakiaji wa mafaili umelemazwa.",
        "protectedpages-cascade": "Mpangilio wa ulindaji tu",
        "protectedpagesempty": "Hakuna kurasa zinazolindwa kwa sasa kwa vigezo hivi.",
        "protectedpages-page": "Ukurasa",
+       "protectedpages-reason": "Sababu",
        "protectedpages-unknown-timestamp": "Haijulikani",
        "protectedpages-unknown-performer": "Mtumiaji asiyejulikana",
        "protectedtitles": "Majina yanayozuluiwa",
        "watchlist-details": "Unafuatilia {{PLURAL:$1|ukurasa $1|kurasa $1}} bila kuzingatia kurasa za majadiliano.",
        "wlheader-enotif": "Huduma ya kuarifu kwa barua pepe imewezeshwa.",
        "wlheader-showupdated": "Kurasa zilizobadilika tangu ulivyotembelea mara ya mwisho zinaonyeshwa katika hali ya '''kukooza'''",
+       "wlnote": "{{PLURAL:$1|is the last change|Mabadiliko '''$1''' ya}} mwisho katika {{PLURAL:$2|hour|masaa '''$2''' yaliyopita yanaonyeshwa}} chini, ilivyokuwa saa $4, tarehe $3.",
        "wlshowlast": "Onyesha kutoka masaa $1 siku $2 $3",
        "watchlist-options": "Hitiari za maangalizi",
        "watching": "Unafuatilia...",
        "allmessages-prefix": "Zichujwe kwa kiambishi awali:",
        "allmessages-language": "Lugha:",
        "allmessages-filter-submit": "Uende",
+       "allmessages-filter-translate": "Kufasiri",
        "thumbnail-more": "Kuza",
        "filemissing": "Faili halipo",
        "thumbnail_error": "Hitilafu kutengeneza picha ndogo: $1",
        "pageinfo-display-title": "Onyesha mada",
        "pageinfo-article-id": "ID ya ukurasa",
        "pageinfo-language": "Lugha ya maudhui ya ukurasa",
+       "pageinfo-robot-index": "Halali",
+       "pageinfo-robot-noindex": "Marufuku",
        "pageinfo-watchers": "Idadi ya wanaofuatilia",
        "pageinfo-edits": "Idadi ya maharirio",
        "pageinfo-toolboxlink": "Maelezo ya ukurasa",
+       "pageinfo-redirectsto-info": "habari",
        "pageinfo-contentpage-yes": "Ndiyo",
        "pageinfo-protect-cascading-yes": "Ndiyo",
        "pageinfo-category-info": "Maelezo ya jamii",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|majadiliano]])",
        "duplicate-defaultsort": "!'''Ilani:''' Neno msingi la kupanga \"$2\" linafunika neno msingi la kupanga la awali \"$1\".",
        "version": "Toleo",
+       "version-skins": "Maumbo",
        "version-specialpages": "Kurasa maalum",
        "version-variables": "Vibadili",
-       "version-skins": "Maumbo",
        "version-other": "Zingine",
        "version-version": "(Toleo $1)",
        "version-license": "Ruhusa",
index 8aa5a8b..2a0f494 100644 (file)
        "searchprofile-advanced-tooltip": "Sznupańy we uobranych raumach mjan",
        "search-result-size": "$1 ({{PLURAL:$2|1 słowo|$2 słowa|$2 słůw}})",
        "search-result-category-size": "{{PLURAL:$1|1 element|$1 elementy|$1 elementów}} ({{PLURAL:$2|1 kategoryjo|$2 kategoryje|$2 kategoryje}}, {{PLURAL:$3|1 uobrozek|$3 uobrozki|$3 uobrozkow}})",
-       "search-result-score": "Akuratność: $1%",
        "search-redirect": "(půnkńyńćy $1)",
        "search-section": "(tajla $1)",
        "search-suggest": "Myśloł żeś: $1 ?",
index 9063d93..115f1ac 100644 (file)
@@ -34,7 +34,8 @@
                        "බිඟුවා",
                        "Thamiziniyan",
                        "아라",
-                       "Kalyanasundar"
+                       "Kalyanasundar",
+                       "தமிழ்த்தம்பி"
                ]
        },
        "tog-underline": "இணைப்புகளுக்கு அடிக்கோடிடு",
        "invalidtitle-knownnamespace": "பெயரிடைவெளி ' $2 '' மற்றும் உரை '' $3 '' கொன்ட தலைப்பு செல்லாது",
        "invalidtitle-unknownnamespace": "அறியப்படாத பெயரிடைவெளி $1 மற்றும் உரை $2 கொண்ட தலைப்பு செல்லாது",
        "exception-nologin": "புகுபதிகை செய்யப்படவில்லை.",
-       "exception-nologin-text": "à®\87நà¯\8dத à®ªà®\95à¯\8dà®\95à®®à¯\8d / à®\9aà¯\86யà¯\8dà®\95à¯\88 à®\87நà¯\8dத à®µà®¿à®\95à¯\8dà®\95ியிலà¯\8d à®\89à®\99à¯\8dà®\95ளதà¯\81 à®ªà¯\81à®\95à¯\81பதிà®\95à¯\88யà¯\88 à®\8eதிரà¯\8dபாரà¯\8dà®\95à¯\8dà®\95ிறதà¯\81.",
+       "exception-nologin-text": "à®\87நà¯\8dத à®ªà®\95à¯\8dà®\95à®®à¯\8d / à®\9aà¯\86யà¯\8dà®\95à¯\88 à®\9aà¯\86யà¯\8dய à®\85à®°à¯\81ளà¯\8dà®\95à¯\82à®°à¯\8dநà¯\8dதà¯\81 à®ªà¯\81à®\95à¯\81பதிà®\95à¯\88 à®\9aà¯\86யà¯\8dயவà¯\81à®®à¯\8d.",
        "virus-badscanner": "சரியற்ற உள்ளமைவு: அறியப்படாத வைரஸ் வருடி: '' $1 ''",
        "virus-scanfailed": "வருடல் நடைபெறவில்லை (குறியீடு $1)",
        "virus-unknownscanner": "அறியப்படாத வைரசெதிர்ப்பு:",
        "searchprofile-advanced-tooltip": "தனிப்பட்ட பெயர்வெளிகளில் தேடவும்",
        "search-result-size": "$1 ({{PLURAL:$2|1 சொல்|$2 சொற்கள்}})",
        "search-result-category-size": "{{PLURAL:$1|1 உறுப்பினர்|$1 உறுப்பினர்கள்}} ({{PLURAL:$2|1 துணைப்பகுப்பு|$2 துணைப்பகுப்புகள்}}, {{PLURAL:$3|1 கோப்பு|$3 கோப்புகள்}})",
-       "search-result-score": "பொருத்தம்: $1%",
        "search-redirect": "(பக்க வழிமாற்றம் $1)",
        "search-section": "(பிரிவு $1)",
        "search-suggest": "நீங்கள் கருதியது இதையா: $1",
        "license-header": "அனுமதி",
        "nolicense": "தெரிவுச் செய்யப்படவில்லை",
        "license-nopreview": "(முன்தோற்றம் கையிலிருப்பில் இல்லை)",
-       "upload_source_url": " (à®\9aà¯\86லà¯\8dலà¯\81பà®\9fியான, à®\87ணà¯\88ய à®®à¯\81à®\95வரி)",
+       "upload_source_url": " (நà¯\80à®\99à¯\8dà®\95ளà¯\8d à®¤à¯\86ரிவà¯\81 à®\9aà¯\86யà¯\8dத, à®ªà¯\8aதà¯\81விலà¯\8d à®\85ணà¯\81à®\95à¯\8dà®\95à¯\82à®\9fிய à®\9aà¯\86லà¯\8dலதà¯\8dதà®\95à¯\8dà®\95 à®\87ணà¯\88ய à®®à¯\81à®\95வரியிலà¯\8d à®\89ளà¯\8dள à®\95à¯\8bபà¯\8dபà¯\81)",
        "upload_source_file": "(தங்களி்ன் கணினியிலிருந்து தங்களால் தேர்ந்தெடுக்கப்பட்ட கோப்பு)",
        "listfiles-summary": "இச்சிறப்புப் பக்கம் பதிவேற்றப்பட்ட கோப்புகளைப் பட்டியலிடுகிறது.",
        "listfiles_search_for": "பின்வரும் பெயருள்ள ஊடகக் கோப்பைத் தேடு:",
        "mywatchlist": "கவனிப்புப் பட்டியல்",
        "watchlistfor2": "$1 பயனரின் ($2)",
        "nowatchlist": "உங்களுடைய கவனிப்புப் பட்டியலில் ஒரு விடயமும் இல்லை.",
-       "watchlistanontext": "உங்கள் கவனிப்புப் பட்டியலைப் பார்க்க அல்லது தொகுக்க அருள் கூர்ந்து $1 செய்யுங்கள்.",
+       "watchlistanontext": "உங்கள் கவனிப்புப் பட்டியலைப் பார்க்க அல்லது தொகுக்க அருள் கூர்ந்து புகுபதிகை செய்யுங்கள்.",
        "watchnologin": "புகுபதிகை செய்யப்படவில்லை.",
        "addwatch": "கவனிப்புப் பட்டியலில் சேர்",
        "addedwatchtext": "\"[[:$1]]\" பக்கம் உங்கள் [[Special:Watchlist|கவனிப்புப் பக்கத்தில்]] சேர்க்கப்பட்டுள்ளது. இந்தப் பக்கத்துக்கு எதிர்காலத்தில் செய்யப்படவுள்ள மாற்றங்களும், அதனோடிணைந்த பேச்சுப் பக்கமும், அங்கே பட்டியலிடப்படும். அத்துடன் தெரிந்தெடுக்க வசதியாக [[Special:RecentChanges|அண்மைய மாற்றங்களின் பட்டியலில்]] இது தடித்த எழுத்துக்களில் காட்டப்படும். பின்னர், இப் பக்கத்தை உங்கள் கவனிப்புப் பட்டியலிலிருந்து நீக்க விரும்பினால், பக்கச் சட்டத்திலுள்ள ''கவனிப்பு நீக்கு'' என்ற இணைப்பைச் சொடுக்கவும்.",
        "autoblockid": "தானியங்கி தடை #$1",
        "block": "பயனரைத் தடைசெய்",
        "unblock": "பயனர் தடையை நீக்கு",
-       "blockip": "பயனரà¯\88தà¯\8d à®¤à®\9fà¯\81",
+       "blockip": "தà®\9fà¯\81à®\95à¯\8dà®\95வà¯\81à®®à¯\8d {{GENDER:$1|பயனரà¯\8d}}",
        "blockip-legend": "பயனரைத் தடு",
        "blockiptext": "ஒரு குறிப்பிட்ட ஐபி முகவரி அல்லது பயனரிடமிருந்து எழுத்து அணுக்கத்தைத் தடுப்பதற்குக் கீழேயுள்ள படிவத்தை உபயோகிக்கவும். இது விசமத்தனத்தைத் தடுப்பதற்கும் [[{{MediaWiki:Policy-url}}|{{SITENAME}} கொள்கை]]க்கு எற்புடைய வகையிலும் மட்டுமே பயன்படுத்தப்பட வேண்டும்.\nகுறிப்பிட்ட காரணமொன்றைக் கீழே நிரப்புக (எடுத்துக்காட்டாக, விசமத்தனம் செய்யப்பட்ட பக்கங்களை எடுத்துக் காட்டவும்).",
        "ipaddressorusername": "ஐ.பி. அல்லது பயனர் பெயர்:",
        "ipb-unblock-addr": "$1 இன் தடையை நீக்கு",
        "ipb-unblock": "ஐ.பி. அல்லது பயனருக்கான தடையை நீக்கு",
        "ipb-blocklist": "தற்போதுள்ள தடுப்புகளைப் பார்",
-       "ipb-blocklist-contribs": "$1 யின் பங்களிப்புகள்",
+       "ipb-blocklist-contribs": "{{GENDER:$1|$1}}க்கு பங்களிப்புகள்",
        "unblockip": "பயனர் தடையை நீக்கு",
        "unblockiptext": "முன்னர் தடுக்கப்பட்ட ஐ.பி. முகவரி அல்லது பயனர்பெயரின் எழுத்து அணுக்கத்தை மீழ்விப்பதற்கு கீழேயுள்ள படிவத்தை பயன்படுத்தவும்.",
        "ipusubmit": "இந்தத் தடையை நீக்கு",
index 9df1372..4b6eb59 100644 (file)
        "talkpagelinktext": "ಪಾತೆರ",
        "specialpage": "ವಿಶೇಷ ಪುಟ",
        "personaltools": "ವೈಯಕ್ತಿಕ ಉಪಕರಣಲು",
-       "postcomment": "ಕಮೆಂಟ್ ಬರೆಲೆ",
        "articlepage": "ಲೇಖನ ಪುಟೊನು ತೂಲೆ",
        "talk": "ಚರ್ಚೆ",
        "views": "ನೋಟಲು",
        "filedesc": "ಸಾರಾಂಶ",
        "filesource": "ಮೂಲ",
        "savefile": "ಕಡತನ್ ಒರಿಪಾಲೆ",
-       "uploadedimage": "\"[[$1]]\" ಅಪ್ಲೋಡ್ ಆಂಡ್",
        "upload-source": "ಮೂಲ ಕಡತ",
        "license-header": "ಲೈಸೆನ್ಸಿಂಗ್",
        "imgfile": "ಫೈಲ್",
index 92528f5..135f57d 100644 (file)
        "talkpagelinktext": "చర్చ",
        "specialpage": "ప్రత్యేక పేజీ",
        "personaltools": "వ్యక్తిగత పనిముట్లు",
-       "postcomment": "కొత్త విభాగం",
        "articlepage": "విషయపు పేజీని చూడండి",
        "talk": "చర్చ",
        "views": "చూపులు",
        "externaldberror": "డేటాబేసు అధీకరణలో లోపం జరిగింది లేదా మీ బయటి ఖాతాను తాజాకరించడానికి మీకు అనుమతి లేదు.",
        "login": "లాగినవండి",
        "nav-login-createaccount": "లాగినవండి / ఖాతాని సృష్టించుకోండి",
-       "loginprompt": "{{SITENAME}}లోకి ప్రవేశించాలంటే మీ విహారిణిలో కూకీలు చేతనమై ఉండాలి.",
        "userlogin": "లాగినవండి / ఖాతాను సృష్టించుకోండి",
        "userloginnocreate": "లాగినవండి",
        "logout": "నిష్క్రమించు",
        "searchprofile-advanced-tooltip": "కస్టం నేంస్పేసులలో వెదుకు",
        "search-result-size": "$1 ({{PLURAL:$2|1 పదం|$2 పదాలు}})",
        "search-result-category-size": "{{PLURAL:$1|1 సభ్యుడు|$1 సభ్యులు}} ({{PLURAL:$2|1 ఉవవర్గం|$2 ఉపవర్గాలు}}, {{PLURAL:$3|1 దస్త్రం|$3 దస్త్రాలు}})",
-       "search-result-score": "సంబంధం: $1%",
        "search-redirect": "(దారిమార్పు $1)",
        "search-section": "(విభాగం $1)",
        "search-file-match": "(ఫైలు విషయంతో సరిపోలుతోంది)",
        "uploadwarning": "ఎక్కింపు హెచ్చరిక",
        "uploadwarning-text": "కింద ఈ ఫైలు వివరణను మార్చి, మళ్ళీ ప్రయత్నించండి.",
        "savefile": "దస్త్రాన్ని భద్రపరచు",
-       "uploadedimage": "\"[[$1]]\"ని ఎక్కించారు",
-       "overwroteimage": "\"[[$1]]\" యొక్క కొత్త కూర్పును ఎక్కించారు",
        "uploaddisabled": "ఎక్కింపులు అచేతనం చెయ్యబడ్డాయి.",
        "copyuploaddisabled": "URL ద్వారా ఎక్కింపుని అశక్తం చేసారు.",
        "uploaddisabledtext": "ఫైళ్ళ ఎక్కింపులను అచేతనం చేసారు.",
        "watchlist-details": "మీ వీక్షణ జాబితాలో {{PLURAL:$1|ఒక పేజీ ఉంది|$1 పేజీలు ఉన్నాయి}}, చర్చా పేజీలని వదిలేసి.",
        "wlheader-enotif": "ఈ-మెయిలు గమనికలు పంపబడతాయి.",
        "wlheader-showupdated": "మీ గత సందర్శన తరువాత మారిన పేజీలు <strong>బొద్దు</strong>గా చూపించబడ్డాయి.",
-       "wlnote2": "$2, $3 సమయానికి, గత {{PLURAL:$1|గంటలో|<strong>$1</strong> గంటల్లో}}, జరిగిన మార్పులు కింద ఇవ్వబడ్డాయి.",
+       "wlnote": "$3 నాడు $4 సమయానికి, గడచిన {{PLURAL:$2|గంటలో|'''$2''' గంటలలో}} జరిగిన {{PLURAL:$1|ఒక్క మార్పు కింద ఉంది|'''$1''' మార్పులు కింద ఉన్నాయి}}.",
        "wlshowlast": "గత $1 గంటల $2 రోజుల $3 చూపించు",
        "watchlist-options": "వీక్షణ జాబితా ఎంపికలు",
        "watching": "గమనిస్తున్నారు...",
        "duplicate-defaultsort": "హెచ్చరిక: డిఫాల్టు పేర్చు కీ \"$2\", గత డిఫాల్టు పేర్చు కీ \"$1\" ని అతిక్రమిస్తుంది.",
        "version": "సంచిక",
        "version-extensions": "స్థాపించిన పొడగింతలు",
+       "version-skins": "అలంకారాలు",
        "version-specialpages": "ప్రత్యేక పేజీలు",
        "version-parserhooks": "పార్సరు కొక్కాలు",
        "version-variables": "చరరాశులు",
        "version-antispam": "స్పాము నివారణ",
-       "version-skins": "అలంకారాలు",
        "version-other": "ఇతర",
        "version-mediahandlers": "మీడియాను ఫైళ్లను నడిపించే పొడిగింపులు",
        "version-hooks": "కొక్కాలు",
index 423f1e3..3c840fd 100644 (file)
        "talkpage": "Diskusaun kona-ba pájina ne'e",
        "talkpagelinktext": "Diskusaun",
        "specialpage": "Pájina espesiál",
-       "postcomment": "Seksaun foun",
        "talk": "Diskusaun",
        "toolbox": "Kaixa besi nian",
        "userpage": "Haree pájina uza-na'in",
index 50eecf7..20e7d0e 100644 (file)
        "talkpagelinktext": "Баҳс",
        "specialpage": "Саҳифаи вижа",
        "personaltools": "Абзорҳои шахсӣ",
-       "postcomment": "Бахши нав",
        "articlepage": "Намоиши мақола",
        "talk": "Баҳс",
        "views": "Назарот",
        "externaldberror": "Хатое дар иртибот бо пойгоҳи дода рух дода аст ё ин ки шумо иҷозат ба рӯзрасонии ҳисоби берунии худро надоред.",
        "login": "Вуруд",
        "nav-login-createaccount": "Вуруд / Сохтани ҳисоби ҷадид",
-       "loginprompt": "Барои вуруд ба {{SITENAME}} бояд кукиҳоро фаъол кунед.",
        "userlogin": "Вуруд / Сохтани ҳисоби ҷадид",
        "userloginnocreate": "Вуруд",
        "logout": "Хуруҷ аз систем",
        "searchprofile-everything-tooltip": "Ҷустуҷӯи ҳамаи мӯҳтаво (бо ҳисоби саҳифаҳои баҳс)",
        "searchprofile-advanced-tooltip": "Ҷустуҷӯ дар фазоҳои номи дилхоҳ",
        "search-result-size": "$1 ({{PLURAL:$2|1 калима|$2 калимаҳо}})",
-       "search-result-score": "Иртибот: $1%",
        "search-redirect": "(тағйири масир $1)",
        "search-section": "(қисмат $1)",
        "search-suggest": "Оё шумо инро дар назар доред: $1",
        "fileexists-shared-forbidden": "Дар ҳоли ҳозир парванде бо ҳамин ном дар анбори муштараки парвандаҳо вуҷуд дорад; лутфан бар гардед ва парвандаи мавриди назари худро бо номи дигар бо кунед. [[File:$1|thumb|center|$1]]",
        "uploadwarning": "Огоҳии фиристодан",
        "savefile": "Захираи парванда",
-       "uploadedimage": "боршуда \"[[$1]]\"",
-       "overwroteimage": "нусхаи ҷадиди \"[[$1]]\" боргузорӣ шуд",
        "uploaddisabled": "Бор кордан ғайрифаъол аст",
        "copyuploaddisabled": "Боркунӣ тавассути нишонаи интернетӣ ғайрифаъол аст.",
        "uploaddisabledtext": "Боркунии парванда ғайрифаъол аст.",
        "watchlist-details": "{{PLURAL:$1|$1 саҳифа|$1 саҳифаҳо}} дар феҳристи пайгириҳои шумо, бидуни ҳисоби саҳифаҳои баҳс.",
        "wlheader-enotif": "Иттилоорасонии тариқи почтаи электронӣ (E-mail) фаъол шудааст.",
        "wlheader-showupdated": "Саҳифаҳое, ки пас аз охирин сар заданатон ба онҳо тағйир кардаанд '''пурранг''' нишон дода шудаанд",
+       "wlnote": "Дар зер {{PLURAL:$1|охирин тағйир|'''$1''' охирин тағйирот}} дар $2 соати охир {{PLURAL:омадааст|омадаанд}}.",
        "wlshowlast": "Намоиши охирин $1 соат $2 рӯзҳо $3",
        "watchlist-options": "Ихтиёроти феҳристи пайгириҳо",
        "watching": "Пайгири...",
index 780bc24..ec2df52 100644 (file)
        "talkpagelinktext": "Bahs",
        "specialpage": "Sahifai viƶa",
        "personaltools": "Abzorhoi şaxsī",
-       "postcomment": "Baxşi nav",
        "articlepage": "Namoişi maqola",
        "talk": "Bahs",
        "views": "Nazarot",
        "externaldberror": "Xatoe dar irtibot bo pojgohi doda rux doda ast jo in ki şumo içozat ba rūzrasoniji hisobi beruniji xudro nadored.",
        "login": "Vurud",
        "nav-login-createaccount": "Vurud / Soxtani hisobi çadid",
-       "loginprompt": "Baroi vurud ba {{SITENAME}} bojad kukihoro fa'ol kuned.",
        "userlogin": "Vurud / Soxtani hisobi çadid",
        "userloginnocreate": "Vurud",
        "logout": "Xuruç az sistem",
        "searchprofile-images-tooltip": "Çustuçūi parvandaho",
        "searchprofile-everything-tooltip": "Çustuçūi hamai mūhtavo (bo hisobi sahifahoi bahs)",
        "search-result-size": "$1 ({{PLURAL:$2|1 kalima|$2 kalimaho}})",
-       "search-result-score": "Irtibot: $1%",
        "search-redirect": "(taƣjiri masir $1)",
        "search-section": "(qismat $1)",
        "search-suggest": "Ojo şumo inro dar nazar dored: $1",
        "fileexists-thumbnail-yes": "Az aks ba nazar merasad, ki aksi andozaaş xurd ''(anguştdona)''. [[$1|thumb]]\nLutan parvandaro <strong>[[:$1]]</strong> barrasī kuned.\nAgar parvandai barrasişuda aksi xurd karda şudai on parvandai aslī ast, nijoze ba borguzoriji aksi xurd nest.",
        "uploadwarning": "Ogohiji firistodan",
        "savefile": "Zaxirai parvanda",
-       "uploadedimage": "borşuda \"[[$1]]\"",
-       "overwroteimage": "nusxai çadidi \"[[$1]]\" borguzorī şud",
        "uploaddisabled": "Bor kordan ƣajrifa'ol ast",
        "uploadscripted": "In parvanda kodi skriptī jo HTML dorad, ki metavonad dar mururgarī veb nodurust namojon şavad.",
        "uploadvirus": "In parvanda virus dorad! Çuz'ijot: $1",
        "watchlist-details": "{{PLURAL:$1|$1 sahifai|$1 sahifahoi}} dar fehristi pajgirihoi şumo, biduni hisobi sahifahoi bahs.",
        "wlheader-enotif": "Ittiloorasoniji tariqi poctai elektronī (E-mail) imkonpazir ast.",
        "wlheader-showupdated": "Sahifahoe, ki pas az oxirin sar zadanaton ba onho taƣjir kardaand '''purrang''' nişon doda şudaand",
+       "wlnote": "Dar zer {{PLURAL:$1|oxirin taƣjir|'''$1''' oxirin taƣjirot}} dar $2 soati oxir {{PLURAL:omadaast|omadaand}}.",
        "wlshowlast": "Namoişi oxirin $1 soat $2 rūzho $3",
        "watchlist-options": "Ixtijoroti fehristi pajgiriho",
        "watching": "Pajgiri...",
index c9f1b95..e59011e 100644 (file)
@@ -29,7 +29,7 @@
        "tog-newpageshidepatrolled": "ซ่อนหน้าที่ตรวจแล้วจากรายการหน้าใหม่",
        "tog-extendwatchlist": "ขยายรายการเฝ้าดูให้แสดงการเปลี่ยนแปลงทั้งหมด ไม่เพียงการเปลี่ยนแปลงล่าสุด",
        "tog-usenewrc": "จัดกลุ่มการเปลี่ยนแปลงแบ่งตามหน้าในรายการปรับปรุงล่าสุดและรายการเฝ้าดู",
-       "tog-numberheadings": "à¹\83สà¹\88à¹\80ลà¸\82หัวà¸\82à¹\89อà¹\83à¸\99สารà¸\9aัà¸\8dอัตโนมัติ",
+       "tog-numberheadings": "à¹\83สà¹\88à¹\80ลà¸\82หัวà¹\80รืà¹\88อà¸\87อัตโนมัติ",
        "tog-showtoolbar": "แสดงแถบเครื่องมือแก้ไข",
        "tog-editondblclick": "แก้ไขหน้าเมื่อดับเบิลคลิก",
        "tog-editsectiononrightclick": "เปิดใช้งานการแก้ไขเฉพาะส่วนโดยคลิกขวาที่ชื่อเรื่องของส่วนนั้น",
@@ -40,9 +40,9 @@
        "tog-watchrollback": "เพิ่มหน้าที่ฉันย้อนกลับฉุกเฉินเข้ารายการเฝ้าดู",
        "tog-minordefault": "กำหนดให้การแก้ไขทุกครั้งเป็นการแก้ไขเล็กน้อยโดยปริยาย",
        "tog-previewontop": "ให้ตัวอย่างการแก้ไขแสดงก่อนกล่องแก้ไข",
-       "tog-previewonfirst": "à¹\81สà¸\94à¸\87à¸\95ัวอยà¹\88าà¸\87à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82สำหรัà¸\9aการแก้ไขครั้งแรก",
-       "tog-enotifwatchlistpages": "อีà¹\80มลหาà¹\80มืà¹\88อหà¸\99à¹\89าหรือà¹\84à¸\9fลà¹\8cà¹\83à¸\99รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ูมีà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87",
-       "tog-enotifusertalkpages": "อีà¹\80มลหาà¹\80มืà¹\88อหà¸\99à¹\89าà¸\84ุยà¸\81ัà¸\9aà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\82อà¸\87à¸\89ัà¸\99มีà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87",
+       "tog-previewonfirst": "à¹\81สà¸\94à¸\87à¸\95ัวอยà¹\88าà¸\87à¹\83à¸\99การแก้ไขครั้งแรก",
+       "tog-enotifwatchlistpages": "อีเมลหาเมื่อหน้าหรือไฟล์ในรายการเฝ้าดูเปลี่ยนแปลง",
+       "tog-enotifusertalkpages": "อีà¹\80มลหาà¹\80มืà¹\88อมีà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87หà¸\99à¹\89าà¸\84ุยà¸\81ัà¸\9aà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\82อà¸\87à¸\89ัà¸\99",
        "tog-enotifminoredits": "อีเมลหาเช่นกันสำหรับการแก้ไขหน้าและไฟล์เล็กน้อย",
        "tog-enotifrevealaddr": "เปิดเผยที่อยู่อีเมลของฉันในอีเมลแจ้งเตือน",
        "tog-shownumberswatching": "แสดงจำนวนผู้ใช้ที่เฝ้าดู",
@@ -57,9 +57,9 @@
        "tog-watchlisthideanons": "ซ่อนการแก้ไขโดยผู้ใช้นิรนามจากรายการเฝ้าดู",
        "tog-watchlisthidepatrolled": "ซ่อนการแก้ไขที่ตรวจแล้วจากรายการเฝ้าดู",
        "tog-ccmeonemails": "ส่งสำเนาอีเมลที่ฉันส่งหาผู้อื่นให้ฉัน",
-       "tog-diffonly": "à¹\84มà¹\88à¹\81สà¸\94à¸\87à¹\80à¸\99ืà¹\89อหาà¹\83à¸\95à¹\89สà¹\88วà¸\99à¸\95à¹\88าà¸\87à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82",
+       "tog-diffonly": "à¹\84มà¹\88à¹\81สà¸\94à¸\87à¹\80à¸\99ืà¹\89อหาหà¸\99à¹\89าà¹\83à¸\95à¹\89à¸\9cลà¸\95à¹\88าà¸\87",
        "tog-showhiddencats": "แสดงหมวดหมู่ที่ซ่อนอยู่",
-       "tog-norollbackdiff": "à¹\84มà¹\88à¹\81สà¸\94à¸\87à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลงหลังดำเนินการย้อนกลับฉุกเฉิน",
+       "tog-norollbackdiff": "à¹\84มà¹\88à¹\81สà¸\94à¸\87à¸\9cลà¸\95à¹\88างหลังดำเนินการย้อนกลับฉุกเฉิน",
        "tog-useeditwarning": "เตือนฉันเมื่อออกหน้าแก้ไขโดยมีการเปลี่ยนแปลงที่ยังไม่บันทึก",
        "tog-prefershttps": "ใช้การเชื่อมต่อปลอดภัยทุกครั้งเมื่อล็อกอิน",
        "underline-always": "ทุกครั้ง",
        "category-subcat-count": "{{PLURAL:$2|หมวดหมู่นี้มีหมวดหมู่ย่อยเพียงหมวดหมู่เดียว|หมวดหมู่นี้มี {{PLURAL:$1|หมวดหมู่ย่อย|$1 หมวดหมู่ย่อย}} จากทั้งหมด $2 หมวดหมู่}}",
        "category-subcat-count-limited": "หมวดหมู่นี้มี $1 หมวดหมู่ย่อย",
        "category-article-count": "{{PLURAL:$2|หมวดหมู่นี้มีอยู่เพียงหน้าเดียว|ในหมวดหมู่นี้มี {{PLURAL:$1|หน้าเดียว|$1 หน้า}} จากทั้งหมด $2 หน้า}}",
-       "category-article-count-limited": "มี $1 หน้าในหมวดหมู่นี้",
-       "category-file-count": "{{PLURAL:$2|หมวà¸\94หมูà¹\88à¸\99ีà¹\89มีà¹\80à¸\9eียà¸\87à¹\84à¸\9fลà¹\8cà¹\80à¸\94ียว|à¹\83à¸\99หมวดหมู่นี้มี $1 ไฟล์ จากทั้งหมด $2 ไฟล์}}",
+       "category-article-count-limited": "$1 หน้าต่อไปนี้อยู่ในหมวดหมู่นี้",
+       "category-file-count": "{{PLURAL:$2|หมวà¸\94หมูà¹\88à¸\99ีà¹\89มีà¹\80à¸\9eียà¸\87à¹\84à¸\9fลà¹\8cà¸\99ีà¹\89|หมวดหมู่นี้มี $1 ไฟล์ จากทั้งหมด $2 ไฟล์}}",
        "category-file-count-limited": "{{PLURAL:$1|ไฟล์|ไฟล์}}ต่อไปนี้อยู่ในหมวดหมู่นี้",
        "listingcontinuesabbrev": "ต่อ",
        "index-category": "หน้าที่มีดัชนี",
        "history_short": "ประวัติ",
        "updatedmarker": "ถูกปรับตั้งแต่การเข้าชมครั้งล่าสุดของฉัน",
        "printableversion": "รุ่นพร้อมพิมพ์",
-       "permalink": "ลิà¸\87à¸\81à¹\8cถาวร",
+       "permalink": "à¸\81ารà¹\82ยà¸\87ถาวร",
        "print": "พิมพ์",
        "view": "ดู",
        "view-foreign": "ดูบน $1",
        "viewcount": "หน้านี้มีการเข้าชม $1 ครั้ง",
        "protectedpage": "หน้าถูกล็อก",
        "jumpto": "ข้ามไปยัง:",
-       "jumptonavigation": "à¸\99ำทาง",
+       "jumptonavigation": "à¸\9aอà¸\81ทาง",
        "jumptosearch": "ค้นหา",
        "view-pool-error": "ขออภัย ขณะนี้เซิร์ฟเวอร์มีภาระเกิน\nผู้ใช้พยายามดูหน้านี้มากเกินไป\nกรุณารอสักครู่ก่อนเข้าหน้านี้อีกครั้ง\n\n$1",
        "generic-pool-error": "ขออภัย ขณะนี้เซิร์ฟเวอร์โหลดเกิน\nมีผู้ใช้พยายามดูทรัพยากรนี้มากเกินไป\nโปรดรอสักครู่ก่อนลองเข้าถึงทรัพยากรนี้อีกครั้ง",
        "portal-url": "Project:ศูนย์รวมชุมชน",
        "privacy": "นโยบายสิทธิส่วนบุคคล",
        "privacypage": "Project:นโยบายสิทธิส่วนบุคคล",
-       "badaccess": "มีข้อผิดพลาดในการใช้สิทธิ",
+       "badaccess": "มีข้อผิดพลาดในการใช้สิทธิ",
        "badaccess-group0": "คุณไม่ได้รับอนุญาตให้ดำเนินการตามที่ขอ",
-       "badaccess-groups": "ปฏิบัติการที่คุณขอนี้สงวนไว้เฉพาะผู้ใช้ใน{{PLURAL:$2|กลุ่ม|กลุ่ม}}: $1",
+       "badaccess-groups": "ปฏิบัติการที่คุณขอนี้สงวนไว้เฉพาะผู้ใช้ใน{{PLURAL:$2|กลุ่ม|กลุ่มเหล่านี้}}: $1",
        "versionrequired": "ต้องการมีเดียวิกิรุ่น $1",
        "versionrequiredtext": "การใช้หน้านี้ต้องการมีเดียวิกิรุ่น $1  ดู[[Special:Version|หน้ารุ่น]]",
        "ok": "ตกลง",
        "thisisdeleted": "ดูหรือกู้คืน $1 หรือไม่",
        "viewdeleted": "ดู $1 หรือไม่",
        "restorelink": "$1 การแก้ไขที่ถูกลบ",
-       "feedlinks": "ฟีด",
+       "feedlinks": "ฟีด:",
        "feed-invalid": "ฟีดที่สมัครไม่ถูกชนิด",
        "feed-unavailable": "ฟีดไม่ถูกเปิดการใช้งาน",
        "site-rss-feed": "ฟีดอาร์เอสเอส $1",
        "nosuchactiontext": "การกระทำที่กำหนดผ่านยูอาร์แอลดังกล่าวไม่สามารถใช้ได้\nคุณอาจกรอกยูอาร์แอลผิด หรือมาตามลิงก์ที่ไม่ถูกต้อง\nหรืออาจเกิดจากข้อผิดพลาดในซอฟต์แวร์ซึ่ง {{SITENAME}} ใช้อยู่",
        "nosuchspecialpage": "ไม่มีหน้าพิเศษดังกล่าว",
        "nospecialpagetext": "<strong>คุณขอหน้าพิเศษไม่ถูกต้อง</strong>\n\nรายการหน้าพิเศษที่ถูกต้องดูได้ที่ [[Special:SpecialPages|รายการหน้าพิเศษ]]",
-       "error": "ผิดพลาด",
-       "databaseerror": "ผิดพลาดที่ฐานข้อมูล",
+       "error": "à¸\82à¹\89อà¸\9cิà¸\94à¸\9eลาà¸\94",
+       "databaseerror": "à¸\82à¹\89อà¸\9cิà¸\94à¸\9eลาà¸\94à¸\97ีà¹\88à¸\90าà¸\99à¸\82à¹\89อมูล",
        "databaseerror-text": "เกิดความผิดพลาดข้อคำถามของฐานข้อมูล\nซึ่งอาจบ่งชี้ว่ามีจุดบกพร่องในซอฟต์แวร์",
        "databaseerror-textcl": "เกิดความผิดพลาดข้อคำถามของฐานข้อมูล",
        "databaseerror-query": "ข้อคำถาม: $1",
        "databaseerror-function": "ฟังก์ชัน: $1",
-       "databaseerror-error": "à¸\84วามผิดพลาด: $1",
-       "laggedslavemode": "'''คำเตือน:''' ข้อมูลในหน้าอาจไม่ใช่ข้อมูลล่าสุด",
+       "databaseerror-error": "à¸\82à¹\89อผิดพลาด: $1",
+       "laggedslavemode": "<strong>คำเตือน:</strong> หน้านี้อาจไม่มีการปรับล่าสุด",
        "readonly": "ฐานข้อมูลถูกล็อก",
        "enterlockreason": "ใส่เหตุแห่งการล็อก ทั้งเวลาที่คาดว่าจะปลดล็อก",
-       "readonlytext": "à¸\82à¸\93ะà¸\99ีà¹\89à¸\90าà¸\99à¸\82à¹\89อมูลà¸\96ูà¸\81ลà¹\87อà¸\81มิà¹\83หà¹\89รัà¸\9aà¸\82à¹\89อมูลà¹\83หมà¹\88à¹\81ละà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87อื่น อาจเป็นเพราะการบำรุงรักษาฐานข้อมูลรูทีน หลังแล้วเสร็จจะกลับมาใช้งานได้ตามปกติ\n\nผู้ดูแลระบบที่ล็อกได้ให้คำอธิบายดังนี้: $1",
-       "missing-article": "à¸\90าà¸\99à¸\82à¹\89อมูลà¹\84มà¹\88à¸\9eà¸\9aà¹\80à¸\99ืà¹\89อหาà¸\82อà¸\87หà¸\99à¹\89าà¸\97ีà¹\88à¸\84วรà¸\88ะมี à¹\83à¸\99à¸\8aืà¹\88อ \"$1\" $2\n\nสาà¹\80หà¸\95ุมัà¸\81à¹\80à¸\81ิà¸\94à¸\88าà¸\81à¸\81ารà¹\80à¸\9bรียà¸\9aà¹\80à¸\97ียà¸\9aà¸\97ีà¹\88ลà¹\89าสมัย à¸«à¸£à¸·à¸­à¸\81ารà¹\80à¸\8aืà¹\88อมà¹\82ยà¸\87à¸\9bระวัà¸\95ิà¹\84à¸\9bยัà¸\87หà¸\99à¹\89าà¸\99ัà¹\89à¸\99à¹\84à¸\94à¹\89à¸\96ูà¸\81ลà¸\9aà¹\81ลà¹\89ว\n\nหาà¸\81à¹\84มà¹\88à¹\83à¸\8aà¹\88à¸\81รà¸\93ีà¸\94ัà¸\87à¸\81ลà¹\88าว à¸\84ุà¸\93อาà¸\88à¸\9eà¸\9aà¸\9aัà¹\8aà¸\81ในซอฟต์แวร์ กรุณารายงานต่อ[[Special:ListUsers/sysop|ผู้ดูแลระบบ]] พร้อมระบุยูอาร์แอล",
-       "missingarticle-rev": "(รุ่น#: $1)",
+       "readonlytext": "à¸\82à¸\93ะà¸\99ีà¹\89à¸\90าà¸\99à¸\82à¹\89อมูลà¸\96ูà¸\81ลà¹\87อà¸\81มิà¹\83หà¹\89รัà¸\9aà¸\82à¹\89อมูลà¹\83หมà¹\88à¹\81ละà¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\80à¸\9eิà¹\88มà¹\80à¸\95ิมอื่น อาจเป็นเพราะการบำรุงรักษาฐานข้อมูลรูทีน หลังแล้วเสร็จจะกลับมาใช้งานได้ตามปกติ\n\nผู้ดูแลระบบที่ล็อกได้ให้คำอธิบายดังนี้: $1",
+       "missing-article": "à¸\90าà¸\99à¸\82à¹\89อมูลà¹\84มà¹\88à¸\9eà¸\9aà¸\82à¹\89อà¸\84วามà¸\82อà¸\87หà¸\99à¹\89าà¸\97ีà¹\88à¸\84วรมี à¸\8aืà¹\88อ \"$1\" $2\n\nสาà¹\80หà¸\95ุมัà¸\81à¹\80à¸\81ิà¸\94à¸\88าà¸\81à¸\9cลà¸\95à¹\88าà¸\87à¸\97ีà¹\88ลà¹\89าสมัย à¸«à¸£à¸·à¸­à¸\81ารà¹\80à¸\8aืà¹\88อมà¹\82ยà¸\87à¸\9bระวัà¸\95ิà¹\84à¸\9bยัà¸\87หà¸\99à¹\89าà¸\99ัà¹\89à¸\99à¸\96ูà¸\81ลà¸\9aà¹\81ลà¹\89ว\n\nหาà¸\81à¹\84มà¹\88à¹\83à¸\8aà¹\88à¸\81รà¸\93ีà¸\94ัà¸\87à¸\81ลà¹\88าว à¸\84ุà¸\93อาà¸\88à¸\9eà¸\9aà¸\88ุà¸\94à¸\9aà¸\81à¸\9eรà¹\88อà¸\87ในซอฟต์แวร์ กรุณารายงานต่อ[[Special:ListUsers/sysop|ผู้ดูแลระบบ]] พร้อมระบุยูอาร์แอล",
+       "missingarticle-rev": "(รุ่นปรับปรุง#: $1)",
        "missingarticle-diff": "(ต่าง: $1, $2)",
        "readonly_lag": "ฐานข้อมูลถูกล็อกอัตโนมัติขณะที่เซิร์ฟเวอร์ฐานข้อมูลรองกำลังปรับปรุงตามฐานข้อมูลหลัก",
-       "internalerror": "à¹\80à¸\81ิà¸\94à¸\84วามผิดพลาดภายใน",
-       "internalerror_info": "à¹\80à¸\81ิà¸\94à¸\84วามผิดพลาดภายใน: $1",
+       "internalerror": "à¸\82à¹\89อผิดพลาดภายใน",
+       "internalerror_info": "à¹\80à¸\81ิà¸\94à¸\82à¹\89อผิดพลาดภายใน: $1",
        "filecopyerror": "ไม่สามารถคัดลอกไฟล์ \"$1\" ไปที่ \"$2\"",
        "filerenameerror": "ไม่สามารถเปลี่ยนชื่อไฟล์ \"$1\" เป็น \"$2\"",
        "filedeleteerror": "ไม่สามารถลบไฟล์ \"$1\"",
        "directorycreateerror": "ไม่สามารถสร้างไดเรกทอรี \"$1\"",
        "filenotfound": "ไม่พบไฟล์ \"$1\"",
        "unexpected": "ผลที่ไม่คาดคิด: \"$1\"=\"$2\"",
-       "formerror": "à¸\9cิà¸\94à¸\9eลาà¸\94: à¹\84มà¹\88สามารà¸\96สà¹\88à¸\87à¹\81à¸\9aà¸\9aได้",
-       "badarticleerror": "à¸\81ารà¸\81ระà¸\97ำà¸\99ีà¹\89à¹\84มà¹\88สามารà¸\96à¸\97ำà¹\83à¸\99หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94้",
+       "formerror": "à¸\82à¹\89อà¸\9cิà¸\94à¸\9eลาà¸\94: à¸ªà¹\88à¸\87à¹\81à¸\9aà¸\9aà¹\84มà¹\88ได้",
+       "badarticleerror": "à¹\84มà¹\88สามารà¸\96à¸\94ำà¹\80à¸\99ิà¸\99à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\81ารà¸\99ีà¹\89à¹\83à¸\99หà¸\99à¹\89าà¸\99ี้",
        "cannotdelete": "ไม่สามารถลบหน้าหรือไฟล์ \"$1\" \nอาจมีผู้อื่นลบไปแล้ว",
        "cannotdelete-title": "ไม่สามารถลบหน้า ''$1''",
-       "delete-hook-aborted": "à¸\81ารลà¸\9aà¸\96ูà¸\81ฮุà¸\81ยà¸\81à¹\80ลิà¸\81\nà¹\82à¸\94ยà¹\84มà¹\88มีà¸\84ำอà¸\98ิà¸\9aาย",
+       "delete-hook-aborted": "à¸\81ารลà¸\9aà¸\96ูà¸\81ฮุà¸\81ยà¸\81à¹\80ลิà¸\81\nà¹\82à¸\94ยà¹\84มà¹\88มีà¸\84ำà¸\8aีà¹\89à¹\81à¸\88à¸\87",
        "no-null-revision": "ไม่สามารถสร้างรุ่นว่างใหม่ของหน้า \"$1\"",
        "badtitle": "ใช้ชื่อเรื่องนี้ไม่ได้",
        "badtitletext": "ชื่อหน้าที่ขอไม่ถูกต้อง เป็นชื่อว่าง หรือชื่อข้ามภาษาหรือข้ามวิกิที่เชื่อมโยงไม่ถูกต้อง\nอาจมีอักขระที่ไม่สามารถใช้ในชื่อเรื่องได้",
        "perfcached": "ข้อมูลต่อไปนี้ถูกเก็บในแคช และอาจล้าสมัย มีผลการค้นหาสูงสุด $1 รายการในแคช",
        "perfcachedts": "ข้อมูลต่อไปนี้ถูกเก็บในแคช และได้รับการปรับล่าสุดเมื่อ $1 ผลลัพธ์สูงสุด $4 รายการสามารถเก็บในแคชได้",
-       "querypage-no-updates": "à¸\82à¸\93ะà¸\99ีà¹\89à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87หà¸\99à¹\89าà¸\99ีà¹\89à¸\96ูà¸\81ระà¸\87ัà¸\9a ข้อมูลในที่นี้จะไม่รีเฟรชเป็นปัจจุบัน",
+       "querypage-no-updates": "à¸\82à¸\93ะà¸\99ีà¹\89à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\81ารà¸\9bรัà¸\9aหà¸\99à¹\89าà¸\99ีà¹\89 \nข้อมูลในที่นี้จะไม่รีเฟรชเป็นปัจจุบัน",
        "viewsource": "ดูโค้ด",
        "viewsource-title": "ดูโค้ดสำหรับ $1",
-       "actionthrottled": "à¸\81ารà¸\81ระà¸\97ำà¸\99ีà¹\89à¸\96ูà¸\81ระà¸\87ัà¸\9aà¹\84วà¹\89à¸\8aัà¹\88วà¸\84ราว",
-       "actionthrottledtext": "à¹\80à¸\9eืà¹\88อà¹\80à¸\9bà¹\87à¸\99มาà¸\95รà¸\81ารà¸\9bà¹\89อà¸\87à¸\81ัà¸\99สà¹\81à¸\9bม à¸\84ุà¸\93à¸\88ึà¸\87à¸\96ูà¸\81à¸\88ำà¸\81ัà¸\94มิà¹\83หà¹\89à¸\81ระà¸\97ำสิà¹\88à¸\87à¸\99ีà¹\89à¹\84มà¹\88à¹\83หà¹\89à¸\95ิà¸\94à¸\95à¹\88อà¸\81ัà¸\99หลายà¸\84รัà¹\89à¸\87à¹\80à¸\81ิà¸\99à¹\84à¸\9bà¹\83à¸\99à¸\8aà¹\88วà¸\87ระยะà¹\80วลาสัà¹\89à¸\99 à¹\86 à¸\8bึà¹\88à¸\87à¸\82à¸\93ะà¸\99ีà¹\89à¸\84ุà¸\93à¹\84à¸\94à¹\89à¸\81ระà¸\97ำà¹\80à¸\81ิà¸\99à¸\82ีà¸\94à¸\88ำà¸\81ัà¸\94à¹\81ลà¹\89ว กรุณารอสักครู่แล้วลองอีกครั้ง",
-       "protectedpagetext": "หà¸\99à¹\89าà¸\99ีà¹\89à¸\96ูà¸\81ลà¹\87อà¸\81à¹\80à¸\9eืà¹\88อà¸\9bà¹\89อà¸\87à¸\81ัà¸\99มิà¹\83หà¹\89แก้ไขหรือปฏิบัติการอื่น",
+       "actionthrottled": "à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\81ารà¸\96ูà¸\81à¸\88ำà¸\81ัà¸\94",
+       "actionthrottledtext": "à¹\80à¸\9eืà¹\88อà¹\80à¸\9bà¹\87à¸\99มาà¸\95รà¸\81ารà¸\9bà¹\89อà¸\87à¸\81ัà¸\99สà¹\81à¸\9bม à¸\84ุà¸\93à¸\88ึà¸\87à¸\96ูà¸\81à¸\88ำà¸\81ัà¸\94มิà¹\83หà¹\89à¸\81ระà¸\97ำสิà¹\88à¸\87à¸\99ีà¹\89à¹\84มà¹\88à¹\83หà¹\89à¸\95ิà¸\94à¸\95à¹\88อà¸\81ัà¸\99หลายà¸\84รัà¹\89à¸\87à¹\80à¸\81ิà¸\99à¹\84à¸\9bà¹\83à¸\99à¸\8aà¹\88วà¸\87ระยะà¹\80วลาสัà¹\89à¸\99 à¹\86 à¸\8bึà¹\88à¸\87à¸\82à¸\93ะà¸\99ีà¹\89à¸\84ุà¸\93à¹\80ลยà¸\82ีà¸\94à¸\88ำà¸\81ัà¸\94à¸\99ีà¹\89à¹\81ลà¹\89ว \nกรุณารอสักครู่แล้วลองอีกครั้ง",
+       "protectedpagetext": "หà¸\99à¹\89าà¸\99ีà¹\89à¸\96ูà¸\81ลà¹\87อà¸\81à¹\80à¸\9eืà¹\88อà¸\9bà¹\89อà¸\87à¸\81ัà¸\99à¸\81ารแก้ไขหรือปฏิบัติการอื่น",
        "viewsourcetext": "คุณสามารถดูและคัดลอกโค้ดของหน้านี้:",
-       "viewyourtext": "คุณสามารถดูและคัดลอกต้นฉบับ'''การแก้ไขของคุณ'''ในหน้านี้ได้",
+       "viewyourtext": "คุณสามารถดูและคัดลอกต้นฉบับ<strong>การแก้ไขของคุณ</strong>มายังหน้านี้ได้:",
        "protectedinterface": "หน้านี้เป็นข้อความอินเตอร์เฟซสำหรับซอฟต์แวร์บนวิกินี้ และถูกป้องกันเพื่อมิให้มีการกระทำผิด\nในการเพิ่มหรือเปลี่ยนแปลงการแปลสำหรับทุกวิกิ โปรดใช้ [//translatewiki.net/ translatewiki.net] โครงการแปลมีเดียวิกิเป็นภาษาถิ่น",
        "editinginterface": "'''คำเตือน:''' คุณกำลังแก้ไขหน้าที่ใช้เพื่อให้ข้อความอินเตอร์เฟซแก่ซอฟต์แวร์\nการเปลี่ยนแปลงหน้านี้จะกระทบต่อลักษณะของอินเตอร์เฟซผู้ใช้แก่ผู้ใช้อื่นบนวิกินี้\nในการเพิ่มหรือเปลี่ยนแปลงคำแปลสำหรับทุกวิกิ โปรดใช้ [//translatewiki.net/wiki/Main_Page?setlang=th translatewiki.net] โครงการแปลมีเดียวิกิเป็นภาษาถิ่น",
-       "cascadeprotected": "หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94à¹\89รัà¸\9aà¸\81ารà¸\9bà¹\89อà¸\87à¸\81ัà¸\99à¸\88าà¸\81à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82 à¹\80à¸\99ืà¹\88อà¸\87à¸\88าà¸\81หà¸\99à¹\89าà¸\99ีà¹\89à¸\96ูà¸\81à¹\83à¸\8aà¹\89à¹\80à¸\9bà¹\87à¸\99สà¹\88วà¸\99หà¸\99ึà¹\88à¸\87à¹\83à¸\99{{PLURAL:$1|หà¸\99à¹\89า $2 à¸\8bึà¹\88à¸\87à¹\84à¸\94à¹\89รัà¸\9aà¸\81ารà¸\9bà¹\89อà¸\87à¸\81ัà¸\99à¹\81à¸\9aà¸\9a \"à¸\97à¸\9aà¸\97ุà¸\81ลำà¸\94ัà¸\9aà¸\82ัà¹\89à¸\99\"|หà¸\99à¹\89าà¸\8bึà¹\88à¸\87à¹\84à¸\94à¹\89รัà¸\9aà¸\81ารà¸\9bà¹\89อà¸\87à¸\81ัà¸\99à¹\81à¸\9aà¸\9a \"à¸\97à¸\9aà¸\97ุà¸\81ลำà¸\94ัà¸\9aà¸\82ัà¹\89à¸\99\" à¸\94ัà¸\87à¸\95à¹\88อà¹\84à¸\9bà¸\99ีà¹\89: $2}}",
+       "cascadeprotected": "หà¸\99à¹\89าà¸\99ีà¹\89à¸\96ูà¸\81à¸\9bà¹\89อà¸\87à¸\81ัà¸\99มิà¹\83หà¹\89à¹\81à¸\81à¹\89à¹\84à¸\82 à¹\80à¸\9eราะà¸\96ูà¸\81รวมอยูà¹\88à¹\83à¸\99หà¸\99à¹\89าà¸\8bึà¹\88à¸\87à¸\96ูà¸\81ลà¹\87อà¸\81à¹\82à¸\94ยà¹\80à¸\9bิà¸\94à¸\95ัวà¹\80ลือà¸\81 \"à¸\97à¸\9aà¸\97ุà¸\81ลำà¸\94ัà¸\9aà¸\82ัà¹\89à¸\99\":\n$2",
        "namespaceprotected": "คุณไม่มีสิทธิแก้ไขหน้าในเนมสเปซ <strong>$1</strong>",
-       "customcssprotected": "à¸\84ุà¸\93à¹\84มà¹\88มีสิà¸\97à¸\98ิà¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89าสà¹\84à¸\95ลà¹\8c CSS à¸\99ีà¹\89 à¹\80à¸\99ืà¹\88อà¸\87à¸\88าà¸\81หà¸\99à¹\89าà¸\99ีà¹\89มีการตั้งค่าส่วนบุคคลของผู้ใช้อื่น",
-       "customjsprotected": "à¸\84ุà¸\93à¹\84มà¹\88มีสิà¸\97à¸\98ิà¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89าà¸\88าวาสà¸\84ริà¸\9bà¸\95à¹\8cà¸\99ีà¹\89 à¹\80à¸\99ืà¹\88อà¸\87à¸\88าà¸\81หน้านี้มีการตั้งค่าส่วนบุคคลของผู้ใช้อื่น",
+       "customcssprotected": "à¸\84ุà¸\93à¹\84มà¹\88มีสิà¸\97à¸\98ิà¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89าสà¹\84à¸\95ลà¹\8c CSS à¸\99ีà¹\89 à¹\80à¸\9eราะมีการตั้งค่าส่วนบุคคลของผู้ใช้อื่น",
+       "customjsprotected": "à¸\84ุà¸\93à¹\84มà¹\88มีสิà¸\97à¸\98ิà¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89าà¸\88าวาสà¸\84ริà¸\9bà¸\95à¹\8cà¸\99ีà¹\89 à¹\80à¸\9eราะหน้านี้มีการตั้งค่าส่วนบุคคลของผู้ใช้อื่น",
        "mycustomcssprotected": "คุณไม่ได้รับอนุญาตให้แก้ไขหน้าซีเอสเอสนี้",
        "mycustomjsprotected": "คุณไม่ได้รับอนุญาตให้แก้ไขหน้าจาวาสคริปต์นี้",
        "myprivateinfoprotected": "คุณไม่ได้รับอนุญาตให้แก้ไขข้อมูลส่วนตัวของคุณ",
        "mypreferencesprotected": "คุณไม่ได้รับอนุญาตให้แก้ไขการตั้งค่าของคุณ",
-       "ns-specialprotected": "หà¸\99à¹\89าà¸\9eิà¹\80ศษà¹\84มà¹\88สามารà¸\96à¹\81à¸\81à¹\89à¹\84à¸\82à¹\84à¸\94à¹\89",
-       "titleprotected": "ชื่อเรื่องนี้ถูกป้องกันมิให้สร้างโดย [[User:$1|$1]] \nเหตุผลที่ให้ไว้คือ ''<em>$2</em>''",
-       "filereadonlyerror": "ไม่สามารถแก้ไขไฟล์ \"$1\" เพราะที่เก็บไฟล์ \"$2\" อยู่ในภาวะอ่านอย่างเดียว\nผู้ดูแลระบบที่ล็อกให้คำอธิบายว่า: \"$3\"",
+       "ns-specialprotected": "à¹\84มà¹\88สามารà¸\96à¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89าà¸\9eิà¹\80ศษ",
+       "titleprotected": "ชื่อเรื่องนี้ถูก [[User:$1|$1]] ป้องกันมิให้สร้าง\nเหตุผลที่ให้ไว้คือ ''<em>$2</em>''",
+       "filereadonlyerror": "ไม่สามารถแก้ไขไฟล์ \"$1\" เพราะที่เก็บไฟล์ \"$2\" อยู่ในภาวะอ่านอย่างเดียว\n\nผู้ดูแลระบบที่ล็อกให้คำอธิบายว่า: \"$3\"",
        "invalidtitle-knownnamespace": "ชื่อเรื่องที่มีเนมสเปซ \"$2\" กับข้อความ \"$3\" ไม่ถูกต้อง",
        "invalidtitle-unknownnamespace": "ชื่อเรื่องที่ไม่ทราบเนมสเปซหมายเลข $1 กับข้อความ \"$2\" ไม่ถูกต้อง",
        "exception-nologin": "ไม่ได้ล็อกอิน",
-       "exception-nologin-text": "โปรด[[Special:Userlogin|ล็อกอิน]]เพื่อสามารถเข้าถึงหน้าหรือปฏิบัติการนี้",
+       "exception-nologin-text": "โปรดล็อกอินเพื่อสามารถเข้าถึงหน้าหรือปฏิบัติการนี้",
        "exception-nologin-text-manual": "โปรด$1เพื่อสามารถเข้าถึงหน้าหรือปฏิบัติการนี้",
-       "virus-badscanner": "โครงแบบผิดพลาด: ไม่รู้จักตัวสแกนไวรัส: ''$1''",
+       "virus-badscanner": "โครงแบบผิดพลาด: ไม่รู้จักตัวสแกนไวรัส: <em>$1</em>",
        "virus-scanfailed": "การสแกนล้มเหลว (โค้ด $1)",
        "virus-unknownscanner": "ไม่รู้จักโปรแกรมป้องกันไวรัสตัวนี้:",
-       "logouttext": "'''ขณะนี้คุณได้ล็อกเอาต์แล้ว'''\n\nหมายเหตุว่า บางหน้าอาจยังแสดงผลเสมือนว่าคุณกำลังล็อกอินอยู่ จนกว่าคุณจะล้างแคชเบราว์เซอร์ของคุณ",
+       "logouttext": "<strong>คุณล็อกเอาต์แล้ว</strong>\n\nหมายเหตุว่า บางหน้าอาจยังแสดงผลเสมือนว่าคุณยังล็อกอินอยู่ จนกว่าคุณจะล้างแคชเบราว์เซอร์ของคุณ",
        "welcomeuser": "ยินดีต้อนรับ $1!",
-       "welcomecreation-msg": "à¸\9aัà¸\8dà¸\8aีà¸\82อà¸\87à¸\84ุà¸\93à¸\96ูà¸\81สรà¹\89าà¸\87à¸\82ึà¹\89à¸\99à¹\81ลà¹\89ว\nอยà¹\88าลืมà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87[[Special:Preferences|à¸\81ารà¸\95ัà¹\89à¸\87à¸\84à¹\88าà¹\83à¸\99 {{SITENAME}}]] à¸\82อà¸\87à¸\84ุà¸\93",
-       "yourname": "ชื่อผู้ใช้",
+       "welcomecreation-msg": "สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีà¸\82อà¸\87à¸\84ุà¸\93à¹\81ลà¹\89ว\nà¸\84ุà¸\93สามารà¸\96à¹\80à¸\9bลีà¹\88ยà¸\99[[Special:Preferences|à¸\81ารà¸\95ัà¹\89à¸\87à¸\84à¹\88า]] {{SITENAME}} à¸\82อà¸\87à¸\84ุà¸\93à¹\84à¸\94à¹\89หาà¸\81à¸\95à¹\89อà¸\87à¸\81าร",
+       "yourname": "ชื่อผู้ใช้:",
        "userlogin-yourname": "ชื่อผู้ใช้",
        "userlogin-yourname-ph": "กรอกชื่อผู้ใช้",
        "createacct-another-username-ph": "กรอกชื่อผู้ใช้",
-       "yourpassword": "รหัสผ่าน",
+       "yourpassword": "รหัสผ่าน:",
        "userlogin-yourpassword": "รหัสผ่าน",
        "userlogin-yourpassword-ph": "กรอกรหัสผ่าน",
        "createacct-yourpassword-ph": "กรอกรหัสผ่าน",
        "userlogin-signwithsecure": "ใช้การเชื่อมต่อที่ปลอดภัย",
        "yourdomainname": "โดเมนของคุณ:",
        "password-change-forbidden": "คุณไม่สามารถเปลี่ยนรหัสผ่านบนวิกินี้",
-       "externaldberror": "มีà¸\82à¹\89อà¸\9cิà¸\94à¸\9eลาà¸\94à¸\82อà¸\87à¸\90าà¸\99à¸\82à¹\89อมูลà¹\83à¸\99à¸\81ารà¸\9eิสูà¸\88à¸\99à¹\8cà¸\95ัวà¸\88ริà¸\87 à¸«à¸£à¸·à¸­à¸\84ุà¸\93à¹\84มà¹\88à¹\84à¸\94à¹\89รัà¸\9aอà¸\99ุà¸\8dาà¸\95à¹\83หà¹\89à¸\9bรัà¸\9aà¸\9aัà¸\8dà¸\8aีภายà¸\99อà¸\81à¸\82อà¸\87à¸\84ุà¸\93",
+       "externaldberror": "มีข้อผิดพลาดของฐานข้อมูลการพิสูจน์ตัวจริง หรือคุณไม่ได้รับอนุญาตให้ปรับบัญชีภายนอกของคุณ",
        "login": "ล็อกอิน",
        "nav-login-createaccount": "ล็อกอิน / สร้างบัญชี",
        "userlogin": "ล็อกอิน / สร้างบัญชี",
        "createacct-benefit-body1": "$1 การแก้ไข",
        "createacct-benefit-body2": "$1 หน้า",
        "createacct-benefit-body3": "$1 ผู้ร่วมเขียน",
-       "badretype": "รหัสà¸\9cà¹\88าà¸\99à¸\97ีà¹\88à¹\83สà¹\88ไม่ตรงกัน",
-       "userexists": "à¸\8aืà¹\88อà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\97ีà¹\88à¸\81รอà¸\81มีà¸\9cูà¹\89อืà¹\88à¸\99à¹\83à¸\8aà¹\89à¹\84à¸\9bà¹\81ลà¹\89ว กรุณาเลือกชื่ออื่น",
+       "badretype": "รหัสà¸\9cà¹\88าà¸\99à¸\97ีà¹\88à¸\84ุà¸\93à¸\81รอà¸\81ไม่ตรงกัน",
+       "userexists": "à¸\8aืà¹\88อà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\97ีà¹\88à¸\81รอà¸\81มีà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\81ลà¹\89ว \nกรุณาเลือกชื่ออื่น",
        "loginerror": "ล็อกอินผิดพลาด",
        "createacct-error": "การสร้างบัญชีผิดพลาด",
-       "createaccounterror": "ไม่สามารถสร้างบัญชีผู้ใช้: $1",
-       "nocookiesnew": "à¸\8aืà¹\88อà¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\84à¸\94à¹\89à¸\96ูà¸\81สรà¹\89าà¸\87à¸\82ึà¹\89à¸\99à¹\81ลà¹\89ว à¹\81à¸\95à¹\88ยัà¸\87à¹\84มà¹\88à¹\84à¸\94à¹\89ลà¹\87อà¸\81อิà¸\99à¹\80à¸\82à¹\89าสูà¹\88 {{SITENAME}} à¹\80à¸\99ืà¹\88อà¸\87à¸\88าà¸\81วà¹\88าà¹\84มà¹\88à¹\84à¸\94à¹\89à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\84ุà¸\81à¸\81ีà¹\89 à¸\96à¹\89าà¸\95à¹\89อà¸\87à¸\81ารลà¹\87อà¸\81อิà¸\99à¹\83หà¹\89à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\84ุà¸\81à¸\81ีà¹\89à¹\81ละà¸\97ำà¸\81ารลà¹\87อà¸\81อิà¸\99à¹\82à¸\94ยà¹\83สà¹\88à¸\8aืà¹\88อà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\9eรà¹\89อมรหัสà¸\9cà¹\88าà¸\99",
-       "nocookieslogin": "{{SITENAME}} à¹\83à¸\8aà¹\89à¸\84ุà¸\81à¸\81ีà¹\89สำหรัà¸\9aà¸\81ารลà¹\87อà¸\81อิà¸\99 à¸\82à¸\93ะà¸\99ีà¹\89à¸\84ุà¸\81à¸\81ีà¹\89à¸\82อà¸\87à¸\84ุà¸\93à¹\84มà¹\88à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99 กรุณาเปิดใช้งานและลองอีกครั้ง",
-       "nocookiesfornew": "à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\84มà¹\88à¸\96ูà¸\81สรà¹\89าà¸\87 à¹\80à¸\99ืà¹\88อà¸\87à¸\88าà¸\81à¹\80ราà¹\84มà¹\88สามารà¸\96ยืà¸\99ยัà¸\99à¹\81หลà¹\88à¸\87à¸\97ีà¹\88มา\nà¸\81รุà¸\93าà¹\81à¸\99à¹\88à¹\83à¸\88วà¹\88าà¸\84ุà¸\93à¹\84à¸\94à¹\89à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89คุกกี้ โหลดหน้านี้ใหม่และลองอีกครั้ง",
+       "createaccounterror": "ไม่สามารถสร้างบัญชี: $1",
+       "nocookiesnew": "สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\81ลà¹\89ว à¹\81à¸\95à¹\88ยัà¸\87à¹\84มà¹\88à¹\84à¸\94à¹\89ลà¹\87อà¸\81อิà¸\99 \n{{SITENAME}} à¹\83à¸\8aà¹\89à¸\84ุà¸\81à¸\81ีà¹\89à¹\80à¸\9eืà¹\88อลà¹\87อà¸\81อิà¸\99à¸\9cูà¹\89à¹\83à¸\8aà¹\89\nà¸\84ุà¸\93à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\84ุà¸\81à¸\81ีà¹\89\nà¹\82à¸\9bรà¸\94à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99 à¹\81ลà¹\89วลà¹\87อà¸\81อิà¸\99à¸\9eรà¹\89อมà¸\8aืà¹\88อà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\81ละรหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\82อà¸\87à¸\84ุà¸\93",
+       "nocookieslogin": "{{SITENAME}} à¹\83à¸\8aà¹\89à¸\84ุà¸\81à¸\81ีà¹\89à¹\80à¸\9eืà¹\88อลà¹\87อà¸\81อิà¸\99à¸\9cูà¹\89à¹\83à¸\8aà¹\89\nà¸\84ุà¸\93à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\84ุà¸\81à¸\81ีà¹\89\nกรุณาเปิดใช้งานและลองอีกครั้ง",
+       "nocookiesfornew": "à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\84มà¹\88à¸\96ูà¸\81สรà¹\89าà¸\87 à¹\80à¸\99ืà¹\88อà¸\87à¸\88าà¸\81à¹\80ราà¹\84มà¹\88สามารà¸\96ยืà¸\99ยัà¸\99à¸\95à¹\89à¸\99à¸\97าà¸\87\nà¸\81รุà¸\93าà¸\97ำà¹\83หà¹\89à¹\81à¸\99à¹\88à¹\83à¸\88วà¹\88าà¸\84ุà¸\93à¹\84à¸\94à¹\89à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99คุกกี้ โหลดหน้านี้ใหม่และลองอีกครั้ง",
        "noname": "คุณไม่ได้ใส่ชื่อผู้ใช้ที่ถูกต้อง",
        "loginsuccesstitle": "ล็อกอินสำเร็จ",
-       "loginsuccess": "'''ขณะนี้คุณล็อกอินเข้าสู่ {{SITENAME}} ด้วยชื่อ \"$1\"'''",
+       "loginsuccess": "<strong>ขณะนี้คุณล็อกอินเข้าสู่ {{SITENAME}} ด้วยชื่อ \"$1\"</strong>",
        "nosuchuser": "ไม่มีผู้ใช้ชื่อ \"$1\"\nชื่อผู้ใช้นั้นไวต่ออักษรใหญ่เล็ก\nกรุณาตรวจการสะกดอีกครั้ง หรือ[[Special:UserLogin/signup|สร้างบัญชีใหม่]]",
-       "nosuchusershort": "ไม่มีผู้ใช้ชื่อ \"$1\" กรุณาตรวจสอบการสะกด",
+       "nosuchusershort": "ไม่มีผู้ใช้ชื่อ \"$1\" \nกรุณาตรวจสอบการสะกด",
        "nouserspecified": "คุณต้องระบุชื่อผู้ใช้",
        "login-userblocked": "ผู้ใช้นี้ถูกบล็อก ไม่อนุญาตให้ล็อกอิน",
-       "wrongpassword": "รหัสà¸\9cà¹\88าà¸\99à¸\97ีà¹\88à¹\83สà¹\88à¹\84มà¹\88à¸\96ูà¸\81à¸\95à¹\89อà¸\87 โปรดลองอีกครั้ง",
-       "wrongpasswordempty": "ยัà¸\87à¹\84มà¹\88à¹\84à¸\94à¹\89ระà¸\9aุรหัสà¸\9cà¹\88าà¸\99 โปรดลองอีกครั้ง",
-       "passwordtooshort": "รหัสà¸\9cà¹\88าà¸\99à¸\95à¹\89อà¸\87มีà¸\84วามยาวอยà¹\88าà¸\87à¸\99à¹\89อย $1 à¸­à¸±à¸\81à¸\82ระ",
+       "wrongpassword": "รหัสà¸\9cà¹\88าà¸\99à¸\97ีà¹\88à¸\81รอà¸\81à¹\84มà¹\88à¸\96ูà¸\81à¸\95à¹\89อà¸\87 \nโปรดลองอีกครั้ง",
+       "wrongpasswordempty": "รหัสà¸\9cà¹\88าà¸\99à¸\97ีà¹\88à¸\81รอà¸\81วà¹\88าà¸\87\nโปรดลองอีกครั้ง",
+       "passwordtooshort": "รหัสผ่านต้องมีอย่างน้อย $1 อักขระ",
        "password-name-match": "รหัสผ่านต้องต่างจากชื่อผู้ใช้",
        "password-login-forbidden": "ห้ามใช้ชื่อผู้ใช้และรหัสผ่านนี้",
        "mailmypassword": "ตั้งรหัสผ่านใหม่",
        "passwordremindertitle": "รหัสผ่านชั่วคราวใหม่สำหรับ {{SITENAME}}",
-       "passwordremindertext": "à¸\9cูà¹\89à¹\83à¸\94à¸\9cูà¹\89หà¸\99ึà¹\88à¸\87 (à¸\8bึà¹\88à¸\87อาà¸\88à¹\80à¸\9bà¹\87à¸\99à¸\84ุà¸\93 à¸\97ีà¹\88à¹\83à¸\8aà¹\89à¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eี $1) à¸\82อà¹\83หà¹\89สà¹\88à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\82อà¸\87 {{SITENAME}} ($4) à¸£à¸«à¸±à¸ªà¸\9cà¹\88าà¸\99à¸\8aัà¹\88วà¸\84ราวสำหรัà¸\9aà¸\8aืà¹\88อà¸\9cูà¹\89à¹\83à¸\8aà¹\89 \"$2\" à¸\96ูà¸\81สรà¹\89าà¸\87à¸\82ึà¹\89à¸\99 à¹\81ละà¸\81ำหà¸\99à¸\94à¹\80à¸\9bà¹\87à¸\99 \"$3\" à¸«à¸²à¸\81à¸\81ารà¸\82อรหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\99ีà¹\89à¹\80à¸\9bà¹\87à¸\99à¹\80à¸\88à¸\95à¸\99าà¸\82อà¸\87à¸\84ุà¸\93 à¸\84ุà¸\93à¸\88ำà¸\95à¹\89อà¸\87ลà¹\87อà¸\81อิà¸\99à¹\81ละà¹\80ลือà¸\81รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88 à¸\93 à¸\82à¸\93ะà¸\99ีà¹\89 à¸£à¸«à¸±à¸ªà¸\9cà¹\88าà¸\99à¸\8aัà¹\88วà¸\84ราวà¸\82อà¸\87à¸\84ุà¸\93à¸\88ะหมà¸\94อายุà¹\83à¸\99 $5 à¸§à¸±à¸\99\n\nหาà¸\81à¹\80à¸\9bà¹\87à¸\99à¸\9aุà¸\84à¸\84ลอืà¹\88à¸\99à¸\97ีà¹\88à¸\82อรหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88 à¸«à¸£à¸·à¸­à¸«à¸²à¸\81à¸\84ุà¸\93à¸\88ำรหัสà¸\9cà¹\88าà¸\99à¸\82อà¸\87à¸\84ุà¸\93à¹\84à¸\94à¹\89à¹\81ลà¹\89ว à¹\81ละà¹\84มà¹\88à¸\95à¹\89อà¸\87à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88อีà¸\81à¸\95à¹\88อà¹\84à¸\9b คุณอาจละเลยข้อความนี้และใช้รหัสผ่านเดิมของคุณต่อไป",
-       "noemail": "à¹\84มà¹\88มีà¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¸\9aัà¸\99à¸\97ึà¸\81à¹\84วà¹\89สำหรับผู้ใช้ \"$1\"",
+       "passwordremindertext": "à¸\9cูà¹\89à¹\83à¸\94à¸\9cูà¹\89หà¸\99ึà¹\88à¸\87 (à¸\8bึà¹\88à¸\87อาà¸\88à¹\80à¸\9bà¹\87à¸\99à¸\84ุà¸\93 à¸\97ีà¹\88à¹\83à¸\8aà¹\89à¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eี $1) à¸\82อà¹\83หà¹\89สà¹\88à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\82อà¸\87 {{SITENAME}} ($4) à¸£à¸«à¸±à¸ªà¸\9cà¹\88าà¸\99à¸\8aัà¹\88วà¸\84ราวสำหรัà¸\9aà¸\9cูà¹\89à¹\83à¸\8aà¹\89 \"$2\" à¸\96ูà¸\81สรà¹\89าà¸\87à¸\82ึà¹\89à¸\99 à¹\81ละà¸\81ำหà¸\99à¸\94à¹\80à¸\9bà¹\87à¸\99 \"$3\" à¸«à¸²à¸\81à¹\80à¸\9bà¹\87à¸\99à¹\80à¸\88à¸\95à¸\99าà¸\82อà¸\87à¸\84ุà¸\93 à¸\84ุà¸\93à¸\88ำà¸\95à¹\89อà¸\87ลà¹\87อà¸\81อิà¸\99à¹\81ละà¹\80ลือà¸\81รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¹\83à¸\99à¸\82à¸\93ะà¸\99ีà¹\89 \nรหัสà¸\9cà¹\88าà¸\99à¸\8aัà¹\88วà¸\84ราวà¸\82อà¸\87à¸\84ุà¸\93à¸\88ะหมà¸\94อายุà¹\83à¸\99 $5 à¸§à¸±à¸\99\n\nหาà¸\81à¹\80à¸\9bà¹\87à¸\99à¸\9aุà¸\84à¸\84ลอืà¹\88à¸\99à¸\97ีà¹\88à¸\82อรหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88 à¸«à¸£à¸·à¸­à¸«à¸²à¸\81à¸\84ุà¸\93à¸\88ำรหัสà¸\9cà¹\88าà¸\99à¸\82อà¸\87à¸\84ุà¸\93à¹\84à¸\94à¹\89à¹\81ลà¹\89ว à¹\81ละà¹\84มà¹\88à¸\95à¹\89อà¸\87à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88อีà¸\81 คุณอาจละเลยข้อความนี้และใช้รหัสผ่านเดิมของคุณต่อไป",
+       "noemail": "à¹\84มà¹\88มีà¸\81ารà¸\9aัà¸\99à¸\97ึà¸\81à¸\97ีà¹\88อยูà¹\88อีà¹\80มลสำหรับผู้ใช้ \"$1\"",
        "noemailcreate": "คุณจำต้องใส่ที่อยู่อีเมลให้ถูกต้อง",
        "passwordsent": "รหัสผ่านใหม่ถูกส่งไปยังที่อยู่อีเมลที่ลงทะเบียนไว้ของ \"$1\"\nกรุณาล็อกอินอีกครั้งหลังได้รับอีเมล",
-       "blocked-mailpassword": "à¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eีà¸\82อà¸\87à¸\84ุà¸\93à¸\96ูà¸\81à¸\9aลà¹\87อà¸\81มิà¹\83หà¹\89à¹\81à¸\81à¹\89à¹\84à¸\82 à¸\97ำà¹\83หà¹\89à¹\84มà¹\88สามารà¸\96à¸\97ำà¹\80รืà¹\88อà¸\87à¸\82อรหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¹\84à¸\94à¹\89 เพื่อป้องกันการใช้ในทางที่ผิด",
-       "eauthentsent": "อีà¹\80มลยืà¸\99ยัà¸\99à¹\84à¸\94à¹\89à¸\96ูà¸\81สà¹\88à¸\87à¹\84à¸\9bà¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¸\97ีà¹\88à¹\80สà¸\99อ à¸\81à¹\88อà¸\99à¸\97ีà¹\88อีà¹\80มลà¸\88ะà¸\96ูà¸\81สà¹\88à¸\87à¹\84à¸\9bà¸\97ีà¹\88à¸\8aืà¹\88อà¸\9aัà¸\8dà¸\8aีà¸\99ัà¹\89à¸\99 à¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\95ามà¸\84ำà¹\81à¸\99ะà¸\99ำในอีเมลเพื่อยืนยันว่าบัญชีนั้นเป็นของคุณจริง ๆ",
-       "throttled-mailpassword": "อีà¹\80มลà¸\95ัà¹\89à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\96ูà¸\81สà¹\88à¸\87à¹\84à¸\9bà¹\81ลà¹\89วà¹\83à¸\99 $1 à¸\8aัà¹\88วà¹\82มà¸\87à¸\97ีà¹\88à¸\9cà¹\88าà¸\99มา \nอีà¹\80มลà¸\95ัà¹\89à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\88ะสà¹\88à¸\87à¹\84à¸\9bหà¸\99ึà¹\88à¸\87à¸\84รัà¹\89à¸\87à¸\95à¹\88อ $1 à¸\8aัà¹\88วà¹\82มà¸\87à¹\80à¸\97à¹\88าà¸\99ัà¹\89à¸\99 à¹\80à¸\9eืà¹\88อà¸\9bà¹\89อà¸\87à¸\81ัà¸\99à¸\81ารà¸\81ระà¸\97ำà¸\97ีà¹\88à¹\84มà¹\88à¸\96ูà¸\81à¸\95à¹\89อà¸\87",
+       "blocked-mailpassword": "à¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eีà¸\82อà¸\87à¸\84ุà¸\93à¸\96ูà¸\81à¸\9aลà¹\87อà¸\81มิà¹\83หà¹\89à¹\81à¸\81à¹\89à¹\84à¸\82 à¸\97ำà¹\83หà¹\89à¹\84มà¹\88สามารà¸\96à¹\83à¸\8aà¹\89à¸\9fัà¸\87à¸\81à¹\8cà¸\8aัà¸\99à¸\81ูà¹\89รหัสà¸\9cà¹\88าà¸\99 เพื่อป้องกันการใช้ในทางที่ผิด",
+       "eauthentsent": "อีà¹\80มลยืà¸\99ยัà¸\99à¸\96ูà¸\81สà¹\88à¸\87à¹\84à¸\9bยัà¸\87à¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¸\97ีà¹\88ระà¸\9aุà¹\84วà¹\89à¹\81ลà¹\89ว \nà¸\81à¹\88อà¸\99à¸\97ีà¹\88อีà¹\80มลอืà¹\88à¸\99à¸\88ะà¸\96ูà¸\81สà¹\88à¸\87à¹\84à¸\9bยัà¸\87à¸\9aัà¸\8dà¸\8aีà¸\99ัà¹\89à¸\99 à¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\95ามà¸\84ำสัà¹\88à¸\87ในอีเมลเพื่อยืนยันว่าบัญชีนั้นเป็นของคุณจริง ๆ",
+       "throttled-mailpassword": "อีà¹\80มลà¸\95ัà¹\89à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\96ูà¸\81สà¹\88à¸\87à¹\84à¸\9bà¹\81ลà¹\89วà¹\83à¸\99 $1 à¸\8aัà¹\88วà¹\82มà¸\87à¸\97ีà¹\88à¸\9cà¹\88าà¸\99มา \nอีà¹\80มลà¸\95ัà¹\89à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\88ะสà¹\88à¸\87à¹\84à¸\9bหà¸\99ึà¹\88à¸\87à¸\84รัà¹\89à¸\87à¸\95à¹\88อ $1 à¸\8aัà¹\88วà¹\82มà¸\87à¹\80à¸\97à¹\88าà¸\99ัà¹\89à¸\99 à¹\80à¸\9eืà¹\88อà¸\9bà¹\89อà¸\87à¸\81ัà¸\99à¸\81ารà¸\81ระà¸\97ำà¸\9cิà¸\94",
        "mailerror": "ข้อผิดพลาดในการส่งเมล: $1",
-       "acct_creation_throttle_hit": "ผู้เข้าชมวิกินี้ที่ใช้เลขที่อยู่ไอพีของคุณ ได้สร้างบัญชีแล้ว $1 บัญชีในวันที่ผ่านมา ซึ่งเป็นจำนวนสูงสุดที่อนุญาตในช่วงเวลาดังกล่าว\nจึงส่งผลให้ผู้เข้าชมที่ใช้เลขที่อยู่ไอพีนี้ ไม่สามารถสร้างบัญชีได้อีกในขณะนี้",
-       "emailauthenticated": "à¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¸\82อà¸\87à¸\84ุà¸\93à¹\84à¸\94à¹\89รัà¸\9aà¸\81ารยืà¸\99ยัà¸\99เมื่อวันที่ $2 เวลา $3",
+       "acct_creation_throttle_hit": "ผู้เข้าชมวิกินี้ที่ใช้เลขที่อยู่ไอพีของคุณ ได้สร้าง $1 บัญชีแล้วในวันที่ผ่านมา ซึ่งเป็นจำนวนสูงสุดที่อนุญาตในช่วงเวลาดังกล่าว\nจึงส่งผลให้ผู้เข้าชมที่ใช้เลขที่อยู่ไอพีนี้ ไม่สามารถสร้างบัญชีได้อีกในขณะนี้",
+       "emailauthenticated": "ยืà¸\99ยัà¸\99à¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¸\82อà¸\87à¸\84ุà¸\93เมื่อวันที่ $2 เวลา $3",
        "emailnotauthenticated": "ที่อยู่อีเมลของคุณยังไม่ได้รับการยืนยัน \nจะไม่มีการส่งอีเมลสำหรับคุณลักษณะใด ๆ ต่อไปนี้",
        "noemailprefs": "ระบุที่อยู่อีเมลในการตั้งค่าของคุณเพื่อให้คุณลักษณะเหล่านี้ทำงานได้",
        "emailconfirmlink": "ยืนยันที่อยู่อีเมลของคุณ",
        "cannotchangeemail": "ไม่สามารถเปลี่ยนที่อยู่อีเมลบนวิกินี้",
        "emaildisabled": "เว็บไซต์นี้ไม่สามารถส่งอีเมล",
        "accountcreated": "สร้างบัญชีแล้ว",
-       "accountcreatedtext": "à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89สำหรัà¸\9a [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|à¸\9eูà¸\94à¸\84ุย]]) à¹\84à¸\94à¹\89สร้างขึ้นแล้ว",
-       "createaccount-title": "สร้างบัญชีสำหรับ {{SITENAME}}",
-       "createaccount-text": "มีบางคนสร้างบัญชีโดยใช้ที่อยู่อีเมลของคุณบน {{SITENAME}} ($4) โดยใช้ชื่อ \"$2\" และรหัสผ่าน \"$3\" คุณควรล็อกอินเพื่อเปลี่ยนรหัสผ่านทันที\n\nคุณอาจเพิกเฉยข้อความนี้ หากการสร้างบัญชีนี้เกิดจากความผิดพลาด",
+       "accountcreatedtext": "à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89สำหรัà¸\9a [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|à¸\9eูà¸\94à¸\84ุย]]) à¸\96ูà¸\81สร้างขึ้นแล้ว",
+       "createaccount-title": "à¸\81ารสรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีสำหรัà¸\9a {{SITENAME}}",
+       "createaccount-text": "มีบางคนสร้างบัญชีโดยใช้ที่อยู่อีเมลของคุณบน {{SITENAME}} ($4) โดยใช้ชื่อ \"$2\" และรหัสผ่าน \"$3\" \nคุณควรล็อกอินและเปลี่ยนรหัสผ่านทันที\n\nคุณอาจเพิกเฉยข้อความนี้ หากการสร้างบัญชีนี้เป็นความผิดพลาด",
        "login-throttled": "ที่ผ่านมาคุณพยายามล็อกอินมากครั้งเกินไป\nกรุณารอ $1 ก่อนลองอีกครั้ง",
-       "login-abort-generic": "à¸\81ารà¹\80à¸\82à¹\89าสูà¹\88ระà¸\9aà¸\9aà¸\82อà¸\87à¸\84ุà¸\93à¹\84มà¹\88à¸\9bระสà¸\9aà¸\84วามสำเร็จ - ล้มเลิกแล้ว",
+       "login-abort-generic": "à¸\81ารลà¹\87อà¸\81อิà¸\99à¸\82อà¸\87à¸\84ุà¸\93à¹\84มà¹\88สำเร็จ - ล้มเลิกแล้ว",
        "loginlanguagelabel": "ภาษา: $1",
        "suspicious-userlogout": "คำขอล็อกเอาต์ของคุณถูกปฏิเสธเพราะดูเหมือนส่งมาจากเบราว์เซอร์หรือพร็อกซีแคชที่เสีย",
        "createacct-another-realname-tip": "ไม่จำเป็นต้องใส่ชื่อจริง\nหากคุณเลือกใส่ชื่อจริง จะใช้เพื่อแสดงที่มาสำหรับงานของตน",
        "changepassword": "เปลี่ยนรหัสผ่าน",
        "resetpass_announce": "คุณต้องตั้งรหัสผ่านใหม่จึงจะเสร็จสิ้นการล็อกอิน",
        "resetpass_text": "<!-- เพิ่มข้อความที่นี่ -->",
-       "resetpass_header": "เปลี่ยนรหัสผ่าน",
+       "resetpass_header": "เปลี่ยนรหัสผ่านบัญชี",
        "oldpassword": "รหัสผ่านเดิม:",
        "newpassword": "รหัสผ่านใหม่:",
        "retypenew": "พิมพ์รหัสผ่านใหม่อีกครั้ง:",
        "resetpass_submit": "ตั้งรหัสผ่านและล็อกอิน",
-       "changepassword-success": "à¹\80à¸\9bลีà¹\88ยà¸\99รหัสà¸\9cà¹\88าà¸\99à¸\82อà¸\87à¸\84ุà¸\93à¹\80รียà¸\9aรà¹\89อย",
-       "changepassword-throttled": "à¸\84ุà¸\93à¹\84à¸\94à¹\89à¸\9eยายามลà¹\87อà¸\81อิà¸\99มาà¸\81à¸\84รัà¹\89à¸\87à¹\80à¸\81ิà¸\99à¹\84à¸\9b\nà¸\81รุà¸\93ารอ $1 à¸\81à¹\88อà¸\99ลอà¸\87อีà¸\81à¸\84รัà¹\89à¸\87",
+       "changepassword-success": "à¹\80à¸\9bลีà¹\88ยà¸\99รหัสà¸\9cà¹\88าà¸\99à¸\82อà¸\87à¸\84ุà¸\93สำà¹\80รà¹\87à¸\88",
+       "changepassword-throttled": "คุณพยายามล็อกอินมากครั้งเกินไป\nกรุณารอ $1 ก่อนลองอีกครั้ง",
        "resetpass_forbidden": "ไม่สามารถเปลี่ยนรหัสผ่านได้",
        "resetpass-no-info": "คุณต้องล็อกอินเพื่อเข้าถึงหน้านี้โดยตรง",
        "resetpass-submit-loggedin": "เปลี่ยนรหัสผ่าน",
        "resetpass-submit-cancel": "ยกเลิก",
-       "resetpass-wrong-oldpass": "รหัสà¸\9cà¹\88าà¸\99à¸\8aัà¹\88วà¸\84ราวหรือà¸\9bัà¸\88à¸\88ุà¸\9aัà¸\99à¹\84มà¹\88à¸\96ูà¸\81à¸\95à¹\89อà¸\87\nà¸\84ุà¸\93อาà¸\88à¹\80à¸\9bลีà¹\88ยà¸\99รหัสà¸\9cà¹\88าà¸\99à¸\82อà¸\87à¸\84ุà¸\93à¹\84à¸\9bà¹\81ลà¹\89ว à¸«à¸£à¸·à¸­à¸\82อรหัสà¸\9cà¹\88าà¸\99à¸\8aัà¹\88วà¸\84ราวà¹\83หมà¹\88à¹\81ลà¹\89ว",
+       "resetpass-wrong-oldpass": "รหัสผ่านชั่วคราวหรือปัจจุบันไม่ถูกต้อง\nคุณอาจเปลี่ยนรหัสผ่านของคุณแล้ว หรือขอรหัสผ่านชั่วคราวใหม่แล้ว",
        "resetpass-recycled": "โปรดตั้งรหัสผ่านใหม่ให้ต่างจากรหัสผ่านปัจจุบัน",
        "resetpass-temp-emailed": "คุณล็อกอินด้วยรหัสผ่านชั่วคราวที่ส่งทางอีเมล\nคุณต้องตั้งรหัสผ่านใหม่ที่นี่จึงจะเสร็จสิ้นการล็อกอิน:",
        "resetpass-temp-password": "รหัสผ่านชั่วคราว:",
        "passwordreset-text-one": "กรอกแบบนี้เพื่อตั้งรหัสผ่านใหม่",
        "passwordreset-text-many": "{{PLURAL:$1|กรอกเขตข้อมูลหนึ่งเพื่อรับรหัสผ่านชั่วคราวทางอีเมล}}",
        "passwordreset-legend": "เปลี่ยนรหัสผ่าน",
-       "passwordreset-disabled": "à¸\81ารà¸\95ัà¹\89à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\9aà¸\99วิà¸\81ิà¸\99ีà¹\89",
-       "passwordreset-emaildisabled": "à¸\84ุà¸\93ลัà¸\81ษà¸\93ะอีà¹\80มลà¸\96ูà¸\81à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\9aà¸\99วิà¸\81ิà¸\99ีà¹\89",
+       "passwordreset-disabled": "วิà¸\81ิà¸\99ีà¹\89à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\81ารà¸\95ัà¹\89à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88",
+       "passwordreset-emaildisabled": "วิà¸\81ิà¸\99ีà¹\89à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\84ุà¸\93ลัà¸\81ษà¸\93ะอีà¹\80มล",
        "passwordreset-username": "ชื่อผู้ใช้:",
        "passwordreset-domain": "โดเมน:",
        "passwordreset-capture": "ดูอีเมลที่ได้หรือไม่",
        "bold_tip": "ทำตัวหนา",
        "italic_sample": "ข้อความตัวเอน",
        "italic_tip": "ทำตัวเอน",
-       "link_sample": "ลิà¸\87à¸\81à¹\8cà¹\80à¸\8aืà¹\88อมà¹\82ยง",
+       "link_sample": "à¹\80à¸\8aืà¹\88อมà¹\82ยà¸\87หัวà¹\80รืà¹\88อง",
        "link_tip": "ลิงก์ภายใน",
-       "extlink_sample": "http://www.example.com à¸\8aืà¹\88อà¹\80รืà¹\88อà¸\87à¸\82อà¸\87ลิà¸\87à¸\81à¹\8c",
+       "extlink_sample": "http://www.example.com à¸\8aืà¹\88อà¹\80รืà¹\88อà¸\87à¹\80à¸\8aืà¹\88อมà¹\82ยà¸\87",
        "extlink_tip": "ลิงก์ภายนอก (อย่าลืมใส่ http:// นำหน้าเสมอ)",
        "headline_sample": "ข้อความพาดหัว",
        "headline_tip": "พาดหัวระดับ 2",
        "missingcommentheader": "'''ประกาศเตือน:''' คุณยังไม่ได้ใส่หัวข้อ/จ่าหัวสำหรับความเห็นนี้ ถ้าคุณกด \"{{int:savearticle}}\" อีกครั้ง การแก้ไขของคุณจะถูกบันทึกโดยไม่มีหัวข้อ",
        "summary-preview": "ตัวอย่างคำอธิบายการแก้ไข:",
        "subject-preview": "ตัวอย่างหัวข้อ/พาดหัว:",
-       "blockedtitle": "ผู้ใช้ถูกบล็อกอยู่",
+       "blockedtitle": "ผู้ใช้ถูกบล็อก",
        "blockedtext": "<strong>ชื่อผู้ใช้หรือเลขที่อยู่ไอพีของคุณถูกบล็อก</strong>\n\nการบล็อกนี้ดำเนินการโดย $1\nซึ่งให้เหตุผลว่า ''$2''\n\n* เริ่มการบล็อก: $8\n* หมดเขตการบล็อก: $6\n* ผู้ถูกบล็อก: $7\n\nคุณสามารถติดต่อ $1 หรือ[[{{MediaWiki:Grouppage-sysop}}|ผู้ดูแลระบบ]]คนอื่นเพื่ออภิปรายการบล็อกนี้ได้\nคุณไม่สามารถใช้คุณลักษณะ \"ส่งอีเมลหาผู้ใช้รายนี้ได้\" จนกว่าจะระบุที่อยู่อีเมลให้ถูกต้องใน[[Special:Preferences|การตั้งค่าบัญชี]]ของคุณ และคุณมิได้ถูกห้ามใช้ความสามารถนี้\nเลขที่อยู่ไอพีปัจจุบันของคุณคือ $3 และหมายเลขการบล็อกคือ #$5 \nโปรดแสดงรายละเอียดข้างต้นทั้งหมดในการสอบถามใด ๆ",
        "autoblockedtext": "เลขที่อยู่ไอพีของคุณถูกบล็อกอัตโนมัติ เพราะมีผู้ใช้อื่นใช้มาก่อน ซึ่งถูกบล็อกโดย $1\nโดยให้เหตุผลว่า\n\n:<em>$2</em>\n\n* เริ่มการบล็อก: $8\n* สิ้นสุดการบล็อก: $6\n* ผู้ถูกบล็อก: $7\n\nคุณสามารถติดต่อ $1 หรือ[[{{MediaWiki:Grouppage-sysop}}|ผู้ดูแลระบบ]]คนอื่นเพื่อหารือการบล็อกนี้ \nคุณไม่สามารถใช้คุณลักษณะ \"ส่งอีเมลหาผู้ใช้รายนี้ได้\" จนกว่าจะระบุที่อยู่อีเมลที่ถูกต้องใน[[Special:Preferences|การตั้งค่าบัญชี]]ของคุณ และคุณมิได้ถูกห้ามใช้\nเลขที่อยู่ไอพีปัจจุบันของคุณคือ $3 และหมายเลขการบล็อกคือ #$5 \nโปรดรวมรายละเอียดข้างต้นทั้งหมดในการสอบถามใด ๆ",
-       "blockednoreason": "ไม่ได้ให้เหตุผลไว้",
+       "blockednoreason": "ไม่ได้ให้เหตุผล",
        "whitelistedittext": "คุณต้อง$1เพื่อแก้ไขหน้า",
        "confirmedittext": "คุณต้องยืนยันที่อยู่อีเมลของคุณก่อนแก้ไขหน้า โปรดกำหนดที่อยู่อีเมลของคุณและทำให้ถูกต้องผ่าน[[Special:Preferences|การตั้งค่าผู้ใช้]]",
        "nosuchsectiontitle": "ไม่พบส่วน",
        "accmailtext": "รหัสผ่านแบบสุ่มของ [[User talk:$1|$1]] ถูกส่งไปยัง $2 แล้ว สามารถเปลี่ยนรหัสผ่านในหน้า''[[Special:ChangePassword|เปลี่ยนรหัสผ่าน]]'' หลังล็อกอิน",
        "newarticle": "(ใหม่)",
        "newarticletext": "คุณตามลิงก์ไปยังหน้าที่ยังไม่มีในขณะนี้\nในการสร้างหน้า เริ่มพิมพ์ในกล่องด้านล่าง (ดูข้อมูลเพิ่มเติมใน[$1 หน้าคำอธิบาย])\nถ้าคุณเข้ามาหน้านี้โดยผิดพลาด ให้กดปุ่ม'''ถอยหลัง''' (back) ของเบราว์เซอร์",
-       "anontalkpagetext": "----\n<em>หà¸\99à¹\89าà¸\99ีà¹\89à¹\80à¸\9bà¹\87à¸\99หà¸\99à¹\89าà¸\84ุยà¸\81ัà¸\9aà¸\9cูà¹\89à¹\83à¸\8aà¹\89สำหรัà¸\9aà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\99ิรà¸\99ามà¸\8bึà¹\88à¸\87ยัà¸\87à¹\84มà¹\88à¹\84à¸\94à¹\89สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีหรือà¹\84มà¹\88à¹\84à¸\94à¹\89ลà¹\87อà¸\81อิà¸\99</em>\nà¸\94ัà¸\87à¸\99ัà¹\89à¸\99à¹\80ราà¸\88ึà¸\87ระà¸\9aุà¸\95ัวà¸\95à¸\99à¹\82à¸\94ยà¹\83à¸\8aà¹\89à¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eีà¹\81à¸\97à¸\99\nà¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eีà¸\99ีà¹\89อาà¸\88มีà¸\9cูà¹\89à¹\83à¸\8aà¹\89รà¹\88วมà¸\81ัà¸\99หลายà¸\84à¸\99\nà¸\96à¹\89าà¸\84ุà¸\93à¹\80à¸\9bà¹\87à¸\99à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\99ิรà¸\99าม à¹\81ละรูà¹\89สึà¸\81วà¹\88าà¸\84ุà¸\93à¹\84à¸\94à¹\89รัà¸\9aà¸\84วามà¹\80หà¹\87à¸\99à¸\97ีà¹\88à¹\84มà¹\88à¹\80à¸\81ีà¹\88ยวà¸\82à¹\89อà¸\87 กรุณา[[Special:UserLogin/signup|สร้างบัญชี]]หรือ[[Special:UserLogin|ล็อกอิน]] เพื่อป้องกันการสับสนกับผู้ใช้นิรนามรายอื่นในอนาคต",
-       "noarticletext": "ปัจจุบันไม่มีข้อความในหน้านี้\nคุณสามารถ[[Special:Search/{{PAGENAME}}|ค้นหาชื่อหน้านี้]]ในหน้าอื่น หรือ<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ค้นหาปูมที่เกี่ยวข้อง] หรือ[{{fullurl:{{FULLPAGENAME}}|action=edit}} แก้ไขหน้านี้]</span>",
+       "anontalkpagetext": "----\n<em>หà¸\99à¹\89าà¸\99ีà¹\89à¹\80à¸\9bà¹\87à¸\99หà¸\99à¹\89าà¸\84ุยà¸\81ัà¸\9aà¸\9cูà¹\89à¹\83à¸\8aà¹\89สำหรัà¸\9aà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\99ิรà¸\99ามà¸\8bึà¹\88à¸\87ยัà¸\87à¹\84มà¹\88à¹\84à¸\94à¹\89สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีหรือà¹\84มà¹\88à¹\84à¸\94à¹\89à¹\83à¸\8aà¹\89</em>\nà¸\94ัà¸\87à¸\99ัà¹\89à¸\99à¹\80ราà¸\88ึà¸\87ระà¸\9aุà¸\95ัวà¸\95à¸\99à¹\82à¸\94ยà¹\83à¸\8aà¹\89à¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eีà¹\81à¸\97à¸\99\nà¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eีà¸\99ีà¹\89อาà¸\88มีà¸\9cูà¹\89à¹\83à¸\8aà¹\89รà¹\88วมà¸\81ัà¸\99หลายà¸\84à¸\99\nà¸\96à¹\89าà¸\84ุà¸\93à¹\80à¸\9bà¹\87à¸\99à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\99ิรà¸\99าม à¹\81ละรูà¹\89สึà¸\81วà¹\88าà¸\84ุà¸\93à¹\84à¸\94à¹\89รัà¸\9aà¸\84วามà¹\80หà¹\87à¸\99à¸\97ีà¹\88à¹\84มà¹\88à¹\80à¸\81ีà¹\88ยวà¸\82à¹\89อà¸\87สà¹\88à¸\87หาà¸\84ุà¸\93 กรุณา[[Special:UserLogin/signup|สร้างบัญชี]]หรือ[[Special:UserLogin|ล็อกอิน]] เพื่อป้องกันการสับสนกับผู้ใช้นิรนามรายอื่นในอนาคต",
+       "noarticletext": "ปัจจุบันไม่มีข้อความในหน้านี้\nคุณสามารถ[[Special:Search/{{PAGENAME}}|ค้นหาชื่อหน้านี้]]ในหน้าอื่น <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ค้นหาปูมที่เกี่ยวข้อง] หรือ[{{fullurl:{{FULLPAGENAME}}|action=edit}} แก้ไขหน้านี้]</span>",
        "noarticletext-nopermission": "ปัจจุบันไม่มีข้อความในหน้านี้\nคุณสามารถ[[Special:Search/{{PAGENAME}}|ค้นหาชื่อหน้านี้]]ในหน้าอื่น หรือ<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ค้นหาปูมที่เกี่ยวข้อง]</span> แต่คุณไม่มีสิทธิสร้างหน้านี้",
-       "missing-revision": "ไม่มีรุ่น #$1 ของหน้าชื่อ \"{{FULLPAGENAME}}\" \n\nโดยปกติเกิดจากการเข้าลิงก์ประวัติเก่าของหน้าที่ถูกลบไปแล้ว\nดูรายละเอียดได้ที่[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ปูมการลบ]",
+       "missing-revision": "ไม่มีรุ่นปรับปรุง #$1 ของหน้าชื่อ \"{{FULLPAGENAME}}\" \n\nปกติเกิดจากการตามการโยงประวัติเก่าไปยังหน้าที่ถูกลบแล้ว\nดูรายละเอียดได้ที่[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ปูมการลบ]",
        "userpage-userdoesnotexist": "บัญชีผู้ใช้ \"$1\" มิได้ลงทะเบียน \nกรุณาตรวจสอบหากคุณต้องการสร้าง/แก้ไขหน้านี้",
        "userpage-userdoesnotexist-view": "บัญชีผู้ใช้ \"$1\" มิได้ลงทะเบียน",
-       "blocked-notice-logextract": "à¸\9bัà¸\88à¸\88ุà¸\9aัà¸\99à¹\80ลà¸\82à¸\97ีà¹\88อยูà¹\88à¹\84อà¸\9eีà¸\99ีà¹\89à¸\96ูà¸\81à¸\9aลà¹\87อà¸\81\nหà¸\99à¹\88วยบล็อกล่าสุดแสดงด้านล่างนี้เพื่อการอ้างอิง:",
+       "blocked-notice-logextract": "à¸\9bัà¸\88à¸\88ุà¸\9aัà¸\99à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\99ีà¹\89à¸\96ูà¸\81à¸\9aลà¹\87อà¸\81\nหà¸\99à¹\88วยà¸\9bูมà¸\81ารบล็อกล่าสุดแสดงด้านล่างนี้เพื่อการอ้างอิง:",
        "clearyourcache": "'''หมายเหตุ:''' หลังจากบันทึก คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง\n* '''ไฟร์ฟอกซ์ / ซาฟารี:''' กดปุ่ม ''Shift'' ค้างไว้ขณะคลิก ''Reload'' หรือกด ''Ctrl-F5'' หรือ ''Ctrl-R'' (''⌘-R'' บนแมค)\n* '''กูเกิล โครม:''' กดปุ่ม ''Ctrl-Shift-R'' (''⌘-Shift-R'' บนแมค)\n* '''อินเทอร์เน็ตเอกซ์พลอเรอร์:''' กดปุ่ม ''Ctrl'' ค้างไว้ขณะคลิก ''Refresh'' หรือกด ''Ctrl-F5''\n* '''โอเปร่า:''' ล้างแคชใน ''Tools → Preferences''",
        "usercssyoucanpreview": "'''คำแนะนำ:''' กดปุ่ม \"{{int:showpreview}}\" เพื่อทดสอบ CSS ใหม่ของคุณก่อนบันทึก",
        "userjsyoucanpreview": "'''คำแนะนำ:''' กดปุ่ม \"{{int:showpreview}}\" เพื่อทดสอบจาวาสคริปต์ใหม่ของคุณก่อนบันทึก",
        "preferences": "ตั้งค่าส่วนตัว",
        "mypreferences": "การตั้งค่า",
        "prefs-edits": "จำนวนการแก้ไข:",
-       "prefsnologintext2": "โปรด$1เพื่อเปลี่ยนการตั้งค่าของคุณ",
+       "prefsnologintext2": "โปรดล็อกอินเพื่อเปลี่ยนการตั้งค่าของคุณ",
        "prefs-skin": "หน้าตา",
        "skin-preview": "แสดงตัวอย่าง",
        "datedefault": "ไม่มีการตั้งค่า",
        "mywatchlist": "รายการเฝ้าดู",
        "watchlistfor2": "สำหรับ $1 $2",
        "nowatchlist": "ไม่มีรายการในรายการเฝ้าดูของคุณ",
-       "watchlistanontext": "กรุณา$1เพื่อดูหรือแก้ไขรายการในรายการเฝ้าดูของคุณ",
+       "watchlistanontext": "กรุณาล็อกอินเพื่อดูหรือแก้ไขรายการในรายการเฝ้าดูของคุณ",
        "watchnologin": "ยังไม่ได้ล็อกอิน",
        "addwatch": "เพิ่มเข้ารายการเฝ้าดู",
        "addedwatchtext": "หน้า \"[[:$1]]\" ได้เพิ่มลงใน[[Special:Watchlist|รายการเฝ้าดู]]ของคุณแล้ว การเปลี่ยนแปลงในหน้านี้หรือหน้าพูดคุยที่เกี่ยวข้องจะแสดงในรายการดังกล่าว",
        "watchlist-details": "มี $1 หน้าในรายการเฝ้าดูของคุณ ไม่นับแยกหน้าอภิปราย",
        "wlheader-enotif": "การแจ้งเตือนผ่านอีเมลถูกเปิดใช้งาน",
        "wlheader-showupdated": "หน้าที่มีการเปลี่ยนแปลงตั้งแต่คุณเข้าชมล่าสุดแสดงใน'''ตัวหนา'''",
-       "wlnote": "ด้านล่างเป็นการแก้ไข{{PLURAL:$1|ล่าสุด|ล่าสุด '''$1''' รายการ}} ใน{{PLURAL:$2|ชั่วโมง|ช่วง '''$2''' ชั่วโมง}}ที่ผ่านมา จนถึง $3, $4",
+       "wlnote": "ด้านล่างเป็นการแก้ไข{{PLURAL:$1|ล่าสุด|ล่าสุด <strong>$1</strong> รายการ}} ใน{{PLURAL:$2|ชั่วโมง| <strong>$2</strong> ชั่วโมง}}ที่ผ่านมา จนถึง $3, $4",
        "wlshowlast": "แสดง $1 ชั่วโมง $2 วันล่าสุด $3",
        "watchlist-options": "ตัวเลือกรายการเฝ้าดู",
        "watching": "เฝ้าดู...",
        "delete-edit-reasonlist": "แก้ไขเหตุผลการลบ",
        "delete-toobig": "หน้านี้มีประวัติการแก้ไขนาดใหญ่ คือ กว่า $1 รุ่น การลบหน้าเช่นนี้ถูกจำกัดเพื่อป้องกันการรบกวน{{SITENAME}}โดยบังเอิญ",
        "delete-warning-toobig": "หน้านี้มีประวัติการแก้ไขขนาดใหญ่ กว่า $1 รุ่น การลบหน้านี้อาจรบกวนการทำงานของฐานข้อมูลของ {{SITENAME}} โปรดดำเนินการด้วยความระมัดระวัง",
+       "delete-cantedit": "คุณไม่สามารถลบหน้านี้ได้เพราะคุณไม่ได้รับอนุญาตให้แก้ไข",
        "deleting-backlinks-warning": "'''คำเตือน:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|หน้าอื่น]]เชื่อมโยงมายังหรือดึงข้อมูลจากหน้าที่คุณกำลังจะลบ",
        "rollback": "ย้อนการแก้ไขกลับฉุกเฉิน",
        "rollback_short": "ย้อนกลับฉุกเฉิน",
index c6b21c3..07d5212 100644 (file)
        "talkpagelinktext": "Pikir alyşma",
        "specialpage": "Ýörite Sahypa",
        "personaltools": "Şahsy gurallar",
-       "postcomment": "Täze bölüm",
        "articlepage": "Makalany görkez",
        "talk": "Çekişme",
        "views": "Görnüşler",
        "externaldberror": "Ýa tassyklama maglumat bazasynyň säwligi bar ýa-da öz ulanyjy hasabyňyzy täzelemegiňize rugsat berilmeýär.",
        "login": "Hasaba gir",
        "nav-login-createaccount": "Hasaba gir / Hasap döret",
-       "loginprompt": "{{SITENAME}} saýtynda sessiýa açmak üçin kukileri işletmegiňiz zerurdyr.",
        "userlogin": "Hasaba gir / täze hasap aç",
        "userloginnocreate": "Sessiýa aç",
        "logout": "Hasapdan çyk",
        "searchprofile-advanced-tooltip": "Laýyk at giňişliklerinde gözle",
        "search-result-size": "$1 ({{PLURAL:$2|1 söz|$2 söz}})",
        "search-result-category-size": "{{PLURAL:$1|1 agza|$1 agza}} ({{PLURAL:$2|1 kiçi kategoriýa|$2 kiçi kategoriýa}}, {{PLURAL:$3|1 faýl|$3 faýl}})",
-       "search-result-score": "Kybapdaşlyk: $1%",
        "search-redirect": "(gönükdirme $1)",
        "search-section": "(bölüm $1)",
        "search-suggest": "Şeýle diýjek bolduňyzmy: $1",
        "uploadwarning": "Ýükleme duýduryşy",
        "uploadwarning-text": "Aşakdaky faýl düşündirişini üýtgediň we gaýtadan synanyşyň.",
        "savefile": "Faýly ýazdyr",
-       "uploadedimage": "Ýüklenen: \"[[$1]]\"",
-       "overwroteimage": "\"[[$1]]\" faýlynyň täze wersiýasy ýüklendi",
        "uploaddisabled": "Ýüklemeklik ýapyk",
        "copyuploaddisabled": "URL arkaly ýüklemek ýapyk.",
        "uploaddisabledtext": "Faýl ýüklemeklik ýapyk.",
        "watchlist-details": "Çekişme sahypalaryny hasap etmäniňde, gözegçilik sanawyňyzda {{PLURAL:$1|$1 sahypa|$1 sahypa}} bar.",
        "wlheader-enotif": "E-poçta bilen habar beriş açyk.",
        "wlheader-showupdated": "Soňky gezek baryp görenizden soňra üýtgedilen sahypalar '''goýy şrift''' bilen görkezilýär.",
+       "wlnote": "Aşakda soňky {{PLURAL:$2|bir sagatda|'''$2''' sagatda}} edilen {{PLURAL:$1|soňky üýtgeşme|soňky '''$1''' üýtgeşme}} görkezilýär.",
        "wlshowlast": "Soňky $1 sagady $2 güni görkez $3",
        "watchlist-options": "Gözegçilik sanawynyň opsiýalary",
        "watching": "Gözegçilige alynýar...",
index c589b01..cbb0891 100644 (file)
        "talkpagelinktext": "Usapan",
        "specialpage": "Natatanging pahina",
        "personaltools": "Mga kagamitang pansarili",
-       "postcomment": "Bagong seksiyon",
        "articlepage": "Tingnan ang pahina ng nilalaman",
        "talk": "Usapan",
        "views": "Mga anyo",
        "externaldberror": "Maaaring may kamalian sa pagpapatotoo ng database o kaya hindi ka pinahintulutang isapanahon ng iyong panlabas na account.",
        "login": "Lumagda",
        "nav-login-createaccount": "Lumagda / lumikha ng account",
-       "loginprompt": "Dapat na pinapahintulutan mo ang mga kuki (''cookie'') upang makalagda sa {{SITENAME}}.",
        "userlogin": "Lumagda / lumikha ng account",
        "userloginnocreate": "Lumagda",
        "logout": "Umalis sa pagkaka-login",
        "searchprofile-advanced-tooltip": "Hanapin sa pinasadyang mga espasyo ng pangalan",
        "search-result-size": "$1 ({{PLURAL:$2|1 salita|$2 salita}})",
        "search-result-category-size": "{{PLURAL:$1|isang kasapi|$1 kasapi}} ({{PLURAL:$2|isang subkategorya|$2 subkategorya}}, {{PLURAL:$3|isang talaksan|$3 talaksan}})",
-       "search-result-score": "Kaugnayan: $1%",
        "search-redirect": "(ipanuto/ituro ang $1)",
        "search-section": "(seksyong $1)",
        "search-suggest": "Ito ba ang ibig mong sabihin: $1",
        "uploadwarning": "Babala sa pagkakarga",
        "uploadwarning-text": "Pakibago ang nasa ibabang paglalarawan ng talaksan at subukan muli.",
        "savefile": "Sagipin ang talaksan",
-       "uploadedimage": "ikinarga ang \"[[$1]]\"",
-       "overwroteimage": "nagkarga ng isang bagong bersyon ng \"[[$1]]\"",
        "uploaddisabled": "Hindi pinagana ang mga pagkarga",
        "copyuploaddisabled": "Ikargang paitaas ayon sa hindi pinaganang URL.",
        "uploaddisabledtext": "Hindi pinagana ang mga pagkakarga ng talaksan.",
        "watchlist-details": "{{PLURAL:$1|$1 pahinang|$1 mga pahinang}} nasa iyong talaan ng mga binabantayan, hindi binibilang ang mga pahina ng usapan.",
        "wlheader-enotif": "Umiiral ang pagpapahayag sa pamamagitan ng e-liham.",
        "wlheader-showupdated": "Ipinapakitang may '''makakapal na mga panitik''' ang nabagong/binagong mga pahina mula pa noong huli mong pagdalaw sa kanila",
-       "wlnote2": "Nasa ibaba ang mga pagbabago sa nakaraang <strong>$1</strong> oras, noon pang $2, $3.",
+       "wlnote": "Nasa ibaba ang {{PLURAL:$1|pinakahuling pagbabago|pinakahuling '''$1''' mga pagbabago}} sa loob ng huling {{PLURAL:$2|oras|'''$2''' mga oras}}, magmula noong $3 sa ganap na ika-$4.",
        "wlshowlast": "Ipakita ang huling $1 mga oras $2 mga araw $3",
        "watchlist-options": "Mga pagpipilian para sa talaan ng mga binabantayan",
        "watching": "Isinasama sa mga binabantayan...",
index 2f9d67a..79b7b31 100644 (file)
        "talkpagelinktext": "Mızokirə",
        "specialpage": "Хысусијә сәһифә",
        "personaltools": "Шәхси диләгон",
-       "postcomment": "Нујә ғысм",
        "articlepage": "Мәғолә дијә кардеј",
        "talk": "Mızokirə",
        "views": "Тәмшо кардеј",
        "remembermypassword": "Мыни ым компутерәдә јодәдә огәт (максимум $1 {{PLURAL:$1|руж|руж}})",
        "login": "Ыштәни едаштеј",
        "nav-login-createaccount": "Ыштәни едаштеј / ыштәни ғејд кардовнијеј",
-       "loginprompt": "{{SITENAME}}-әдә ыштәни едәште горнә, шымә бәбе бә «cookies» иҹозә быдән.",
        "userlogin": "Ыштәни едаштеј / ыштәни ғејд кардовнијеј",
        "userloginnocreate": "Ыштәни едаштеј",
        "logout": "Системәдә кој орохнијеј",
        "upload": "Фајли бо жәј",
        "uploadlogpage": "Бо кардә быә чијон журнал",
        "filedesc": "Кыртә тәсвир",
-       "uploadedimage": "бо жәше \"[[$1]]\"",
        "license": "Лисензијә:",
        "license-header": "Лисензијә",
        "imgfile": "фајл",
index 58e73ab..1aed46c 100644 (file)
        "talkpagelinktext": "Alea",
        "specialpage": "Peesi makehe",
        "personaltools": "Puha haʻate meʻangāue",
-       "postcomment": "Fokotuʻu ha fakamatala",
        "articlepage": "Vakai ki he peesi kakano",
        "talk": "Alea",
        "views": "Ngaahi vakai",
        "yourdomainname": "ho ngāueʻanga",
        "login": "Kau ki ai",
        "nav-login-createaccount": "Kau ki ai",
-       "loginprompt": "ʻOku pau te ke fakamafeia ʻa e ngaahi foʻi keke kapau te ke fie kau-ki-ai ki he {{SITENAME}}.",
        "userlogin": "Kau ki ai",
        "logout": "ʻAlu mamaʻo",
        "userlogout": "ʻAlu mamaʻo",
        "fileexists-shared-forbidden": "ʻOku toka ʻi ai ha peesi mo e hingoa ē ʻi he kalasi vahevahe; fakamolemole ʻe foki pea hiki hake ʻa e failé ni mo e ha hingoa foʻou. [[File:$1|thumb|center|$1]]",
        "uploadwarning": "Tokanga hiki hake",
        "savefile": "Haofaki faitaá ni",
-       "uploadedimage": "\"[[$1]]\" ʻosi hiki hake",
        "uploaddisabled": "ʻOku fakataʻeʻaongaʻi ʻa e ngaahi hiki hake",
        "uploaddisabledtext": "ʻOku fakataʻeʻaongaʻi ha ngaahi hiki hake ʻi heni.",
        "uploadvirus": "ʻOku ʻi ai ha vailasi ʻi he failé ni! ʻŪ kiʻi meʻa: $1",
        "watchlist-details": "ʻOku leʻoʻi ʻa e peesi ʻe $1, ʻikai kau ki ai ʻa e ngaahi peesi alea.",
        "wlheader-enotif": "Kuo fakamafeiaʻi tala mei he tohila",
        "wlheader-showupdated": "*Ko e ngaahi peesi kuo liliu talu he taimi hoʻo ʻaʻahi ki ai, ʻoku ʻasi mai fakasinolahi",
+       "wlnote": "ʻOku ʻasi ʻi lalo ʻa e liliu fakamuimui ʻe $1 ʻi he houa fakamuimui ʻe <b>$2</b>.",
        "wlshowlast": "ʻAsi mai houa fakamuimui ʻe $1, ʻaho ʻe $2, $3",
        "watching": "ʻOku leʻo...",
        "unwatching": "ʻOku taʻeleʻo...",
index 347e836..62e90fc 100644 (file)
        "talkpagelinktext": "Toktok",
        "specialpage": "Sipesol pes",
        "personaltools": "Ol pes bilong mi",
-       "postcomment": "Nupela hap bilong pes",
        "talk": "Toktok",
        "views": "Ol lukluk",
        "toolbox": "Sipesol bokis",
index 77efb97..fbb3d9b 100644 (file)
        "talkpagelinktext": "Mamlo",
        "specialpage": "Faṭo dilonoyto",
        "personaltools": "aMonayḍi",
-       "postcomment": "Fusoqo ḥaṭo",
        "articlepage": "Ḥur baḤbişoṭo",
        "talk": "Droşo",
        "views": "Ḥzayoṭo",
        "remembermypassword": "Dxar uQliḍayḍi buBrowser (buSowudo $1 {{PLURAL:$1|Yawmo|Yawme}})",
        "login": "3bar",
        "nav-login-createaccount": "3bar / Hway Hadomo",
-       "loginprompt": "Glozım maqablat Cookies qanna dqudrat fıtḥat {{SITENAME}}.",
        "userlogin": "3bar / Hway Hadomo",
        "userloginnocreate": "3bar",
        "logout": "Nfoqo",
        "upload": "Mosaq Fayl",
        "uploadlogpage": "Upload log",
        "filedesc": "Sfiquṭo",
-       "uploadedimage": "mosaq \"[[$1]]\"",
        "license": "Fsoso",
        "license-header": "Fsoso",
        "file-anchor-link": "Fayl",
index 1833d18..91da0bb 100644 (file)
        "talkpagelinktext": "Mbulavulo",
        "specialpage": "Tluka ro hlawuleka",
        "personaltools": "Switirhisi swa n'wini",
-       "postcomment": "Xiyenge xintswa",
        "articlepage": "Langutisa tluka ra matsalwa",
        "talk": "Mbulavuriswano",
        "views": "Kulanguteka",
        "remembermypassword": "Tsundzuka ku nghena eka Khompuyuta leyi (kufikela eka $1 {{PLURAL:$1|siku|masiku}})",
        "login": "Pfula u nghena",
        "nav-login-createaccount": "Pfula unghena / Tumbuluxa akhawunti",
-       "loginprompt": "U fanele ku pfumelela swipfuneti leswaku u pfula unghena eka {{SITENAME}}.",
        "userlogin": "Pfula unghena / Tumbuluxa akhawunti",
        "userloginnocreate": "Pfula unghena",
        "logout": "Pfala u famba",
        "upload": "Khandziyisa fayili",
        "uploadlogpage": "Ngula ya nxaxamelo wa swilo leswi hoxiweke",
        "filedesc": "Nkomiso",
-       "uploadedimage": "kuhoxiwe fayili ya \"[[$1]]\"",
        "license": "Nawu wo pfumelela",
        "license-header": "Nawu wo pfumelela",
        "imgfile": "fayili",
index 0fa99e0..57d4c06 100644 (file)
        "searchprofile-advanced-tooltip": "Бирелгән исемнәр мәйданында эзләү",
        "search-result-size": "$1 ({{PLURAL:$2|$2 сүз}})",
        "search-result-category-size": "{{PLURAL:$1|1=1 әгъза|$1 әгъза}} ({{PLURAL:$2|1=1 асттөркем|$2 асттөркем}}, {{PLURAL:$3|1=1 файл|$3 файл}})",
-       "search-result-score": "Релевантлыгы: $1 %",
        "search-redirect": "(юнәлтү $1)",
        "search-section": "($1 бүлеге)",
        "search-suggest": "Бәлки, сез моны эзлисез: $1",
        "verification-error": "Бу файл әлегә тикшерү узмаган.",
        "illegal-filename": "Мондый файл исеменә рөхсәт юк",
        "savefile": "Файлны саклау",
-       "uploadedimage": "«[[$1]]» йөкләнгән",
-       "overwroteimage": "«[[$1]]» файлының яңа юрамасы йөкләнелде",
        "uploaddisabled": "Йөкләү тыелган",
        "copyuploaddisabled": "URL адресы буенча йөкләү ябылган.",
        "uploaddisabledtext": "Файлларны йөкләү ябылган.",
index 95cb788..a7f86ed 100644 (file)
        "talkpagelinktext": "Bäxäs",
        "specialpage": "Maxsus bit",
        "personaltools": "Şäxsi qorallar",
-       "postcomment": "Yaña bülek",
        "articlepage": "Mäqäläne qaraw",
        "talk": "Bäxäs",
        "views": "Qarawlar",
        "externaldberror": "Tışqı mäğlümat bazası yärdämendä awtentifikatsiä ütkändä xata çıqtı, yäisä tışqı xisap yazmağızğa üzgäreşlär kertü xoquqığız yuq.",
        "login": "Kerü",
        "nav-login-createaccount": "Kerü / terkälü",
-       "loginprompt": "{{SITENAME}} proyektına kerü öçen «cookies» röxsät itelgän bulırğa tieş.",
        "userlogin": "Kerü / terkälü",
        "userloginnocreate": "Kerü",
        "logout": "Çığu",
        "searchprofile-everything-tooltip": "Barlıq bitlärdä dä ezläw",
        "searchprofile-advanced-tooltip": "Birelgän isemnär mäydanında ezläw",
        "search-result-size": "$1 ({{PLURAL:$2|$2 süz}})",
-       "search-result-score": "Relevantlığı: $1 %",
        "search-redirect": "(yünältü $1)",
        "search-section": "($1 bülege)",
        "search-suggest": "Bälki, sez monı ezlisez: $1",
        "verification-error": "Bu fayl älegä tikşerü uzmağan.",
        "uploadwarning": "Yökläw kisätmäse",
        "savefile": "Faylnı saqlaw",
-       "uploadedimage": "«[[$1]]» yöklängän",
-       "overwroteimage": "«[[$1]]» faylınıñ yaña yuraması yöklänelde",
        "uploaddisabled": "Yökläw tıyılğan",
        "copyuploaddisabled": "URL adresı buyınça yökläw yabılğan.",
        "uploaddisabledtext": "Fayllarnı yökläw yabılğan.",
index 6d2d010..0fb063a 100644 (file)
        "talkpagelinktext": "Чугаа",
        "specialpage": "Тускай арын",
        "personaltools": "Хууда херекселдер",
-       "postcomment": "Чаа салбыр",
        "articlepage": "Допчу арынны көөрү",
        "talk": "Чугаа",
        "views": "Көрүүшкүннери",
        "remembermypassword": "Мени бо компьютерде сактып алыры ($1 {{PLURAL:$1|1=хүн|хүн}}ге чедир)",
        "login": "Кирери",
        "nav-login-createaccount": "Кирери / бүрүткел бижикти чогаадыры",
-       "loginprompt": "{{SITENAME}} сайтче кирерде, баштай «cookies»-ти чөшпээрээр ужурлуг Силер.",
        "userlogin": "Кирери / бүрүткел бижикти чогаадыры",
        "userloginnocreate": "Кирери",
        "logout": "Үнери",
        "fileuploadsummary": "Түңнел:",
        "filesource": "Эгези:",
        "savefile": "Файлды шыгжаары",
-       "uploadedimage": "«[[$1]]» деп файлды салган.",
        "upload-maxfilesize": "Файлдың эң улуг хемчээли: $1",
        "watchthisupload": "Бо арынны хайгаараары",
        "upload-file-error": "Иштики алдаг",
index bc5be58..843ceff 100644 (file)
        "talkpagelinktext": "ⴰⵎⵢⴰⵏⵏⴰⵏ",
        "specialpage": "ⵜⴰⵙⵏⴰ ⵉⵥⵍⵉⵏ",
        "personaltools": "ⵉⵎⴰⵙⵙⵏ ⵉⵏⵡ",
-       "postcomment": "ⵜⴰⴷⴰⵍⴰ ⵜⴰⵎⴰⵢⵏⵓⵜ",
        "talk": "ⴰⵎⵢⴰⵏⵏⴰⵏ",
        "views": "ⵥⵕ",
        "toolbox": "ⵉⵎⴰⵙⵙⵏ",
index bfa01d5..a4f87fa 100644 (file)
        "talkpagelinktext": "مۇنازىرە",
        "specialpage": "ئالاھىدە بەت",
        "personaltools": "شەخسىي قوراللار",
-       "postcomment": "يېڭى ئابزاس",
        "articlepage": "مەزمۇن بېتىنى كۆرسەت",
        "talk": "مۇنازىرە",
        "views": "كۆرۈنۈش",
        "externaldberror": "بۇ سانداننى دەلىللەش خاتالىقى ياكى سىرتقى ھېساباتىڭىزنى يېڭىلاشنى چەكلىگەنلىكتىن بولغان بولۇشى مۇمكىن.",
        "login": "تىزىمغا كىر",
        "nav-login-createaccount": "تىزىمغا كىر/ھېسابات قۇر",
-       "loginprompt": "سىز cookies نى قوزغاتقاندىلا ئاندىن   {{SITENAME}} غا كىرەلەيسىز.",
        "userlogin": "تىزىمغا كىر/ھېسابات قۇر",
        "userloginnocreate": "تىزىمغا كىر",
        "logout": "تىزىمدىن چىق",
        "searchprofile-advanced-tooltip": "ئادەتلەنگەن ئات بوشلۇقىدىن ئىزدە",
        "search-result-size": "$1 ({{PLURAL:$2|1 سۆز|$2 سۆز}})",
        "search-result-category-size": "{{PLURAL:$1|1 ئەزا|$1 ئەزا}}({{PLURAL:$2|1 تارماق تۈر|$2 تارماق تۈر}}, {{PLURAL:$3|1 ھۆججەت|$3 ھۆججەت}})",
-       "search-result-score": "باغلىنىشچانلىق: $1%",
        "search-redirect": "($1 قايتا نىشانلا)",
        "search-section": "(ئابزاس $1)",
        "search-file-match": "(ھۆججەت مەزمۇنى ماس كەلگەن)",
        "uploadwarning": "يۈكلەش ئاگاھلاندۇرۇشى",
        "uploadwarning-text": "تۆۋەندىكى ھۆججەت چۈشەندۈرۈشىنى ئۆزگەرتىپ ئاندىن قايتا سىناڭ.",
        "savefile": "ھۆججەت ساقلا",
-       "uploadedimage": "\"[[$1]]\" يۈكلەنگەن",
-       "overwroteimage": " \"[[$1]]\" نىڭ يېڭى نەشرى يۈكلەندى",
        "uploaddisabled": "يۈكلەش چەكلەنگەن",
        "copyuploaddisabled": "URL ئارقىلىق يۈكلەش ئىقتىدارى چەكلەنگەن.",
        "uploaddisabledtext": "ھۆججەت يۈكلەش چەكلەنگەن.",
        "watchlist-details": "كۆزەت تىزىملىكىڭىزدە {{PLURAL:$1|$1 بەت|$1 بەت}}  بار، مۇنازىرە بېتىنى ئۆز ئىچىگە ئالمايدۇ.",
        "wlheader-enotif": "ئېلخەتتە ئەسكەرتىش ئىقتىدارى قوزغىتىلدى.",
        "wlheader-showupdated": "سىز ئالدىنقى قېتىم كۆرگەندىن كېيىن ئۆزگەرتىلگەن بەتلەر '''توم''' كۆرۈنىدۇ",
+       "wlnote": "تۆۋەندىكىسى يېقىنقى {{PLURAL:$2|سائەت}} ئىچىدىكى ئاخىرقى '{{PLURAL:$1| قېتىملىق}}  ئۆزگەرتىش، $3 $4 گىچە.",
        "wlshowlast": "يېقىنقى $1 سائەت $2 كۈن $3 نىڭ ئۆزگەرتىشىنى كۆرسەت",
        "watchlist-options": "كۆزەت تىزىملىك تاللانما",
        "watching": "كۆزەت قىلىۋاتىدۇ…",
        "duplicate-defaultsort": "'''ئاگاھلاندۇرۇش:''' كۆڭۈلدىكى تەرتىپلەش كۇنۇپكىسى \"$2\" ئىلگىرىكى كۆڭۈلدىكى تەرتىپلەش كۇنۇپكىسى \"$1\" نى قاپلىۋېتىدۇ.",
        "version": "نەشرى",
        "version-extensions": "قاچىلانغان كېڭەيتىلمە",
+       "version-skins": "تېرەلەر",
        "version-specialpages": "ئالاھىدە بەتلەر",
        "version-parserhooks": "تەھلىلچى ئىلمىكى",
        "version-variables": "ئۆزگەرگۈچى مىقدار",
        "version-antispam": "ئەخلەتتىن ساقلىنىش",
-       "version-skins": "تېرەلەر",
        "version-other": "باشقا",
        "version-mediahandlers": "ۋاسىتە بىر تەرەپ قىلغۇچ",
        "version-hooks": "ئىلمەك",
index 8e9e18e..26a9de1 100644 (file)
@@ -48,7 +48,8 @@
                        "Тест",
                        "아라",
                        "Calak",
-                       "Mykola Swarnyk"
+                       "Mykola Swarnyk",
+                       "Milicevic01"
                ]
        },
        "tog-underline": "Підкреслювання посилань:",
        "undo-failure": "Неможливо скасувати редагування через несумісність проміжних змін.",
        "undo-norev": "Редагування не може бути скасоване, бо його не існує або було вилучено.",
        "undo-nochange": "Схоже, редагування вже було скасовано.",
-       "undo-summary": "Скасування редагування № $1 користувача [[Special:Contributions/$2|$2]] ([[User talk:$2|обговорення]])",
+       "undo-summary": "Скасування редагування № $1 користувача [[Special:Contribs/$2|$2]] ([[User talk:$2|обговорення]])",
        "undo-summary-username-hidden": "Скасувати правку $1, виконану прихованим користувачем",
        "cantcreateaccounttitle": "Неможливо створити обліковий запис",
        "cantcreateaccount-text": "Створення облікових записів із цієї IP-адреси ('''$1''') було заблоковане [[User:$3|користувачем $3]].\n\n$3 зазначив таку причину: ''$2''",
index 8726dc3..3170cbd 100644 (file)
        "talkpagelinktext": "تبادلۂ خیال",
        "specialpage": "خصوصی صفحہ",
        "personaltools": "ذاتی اوزار",
-       "postcomment": "اگلا حصّہ",
        "articlepage": "مندرجاتی صفحہ دیکھیۓ",
        "talk": "تبادلہٴ خیال",
        "views": "خیالات",
        "externaldberror": "یا تو توثیقی ڈیٹابیس میں خطا واقع ہوئی اور یا آپ کو بیرونی کھاتہ بتاریخ کرنے کی اِجازت نہیں ہے.",
        "login": "داخل ہوں",
        "nav-login-createaccount": "کھاتہ کھولیں یا اندراج کریں",
-       "loginprompt": "{{SITENAME}} میں داخلے کیلۓ آپکے پاس قند (کوکیز) مجازہوناچاہیں۔",
        "userlogin": "کھاتہ کھولیں یا اندراج کریں",
        "userloginnocreate": "داخلِ نوشتہ ہوجائیے",
        "logout": "اخراج",
        "searchprofile-advanced-tooltip": "اپنی پسند کے جائے نام میں تلاش",
        "search-result-size": "$1 ({{PLURAL:$2|1 لفظ|$2 الفاظ}})",
        "search-result-category-size": "{{PLURAL:$1|1 رُکن|$1 اراکین}} ({{PLURAL:$2|1 ذیلی زمرہ|$2 ذیلی زمرہ جات}}, {{PLURAL:$3|1 ملف|$3 ملفات}})",
-       "search-result-score": "توافق: $1%",
        "search-redirect": "(رجوع مکرر $1)",
        "search-section": "(حصہ $1)",
        "search-suggest": "کیا آپ کا مطلب تھا: $1",
        "fileexists": "اس نام سے ایک ملف (فائل) پہلے ہی موجود ہے، اگر آپ کو یقین نہ ہو کہ اسے حذف کردیا جانا چاہیۓ تو براہ کرم  <strong>[[:$1]]</strong> کو ایک نظر دیکھ لیجیۓ۔ [[$1|thumb]]",
        "uploadwarning": "انتباہ بہ سلسلۂ زبراثقال",
        "savefile": "فائل محفوظ کریں",
-       "uploadedimage": "زبراثقال (اپ لوڈ) براۓ \"[[$1]]\"",
        "sourcefilename": "اسم ملف (فائل) کا منبع:",
        "destfilename": "تعین شدہ اسم ملف:",
        "watchthisupload": "یہ صفحہ زیر نظر کیجیۓ",
        "watchthispage": "یہ صفحہ زیر نظر کیجیۓ",
        "unwatch": "زیرنظرمنسوخ",
        "watchlist-details": "آپ کی زیرِنظرفہرست پر {{PLURAL:$1|$1 صفحہ ہے|$1 صفحات ہیں}}، اِس میں تبادلۂ خیال صفحات کی تعداد شامل نہیں.",
+       "wlnote": "نیچےآخری $1 تبدیلیاں ہیں جو کے پیچھلے <b>$2</b> گھنٹوں میں کی گئیں۔",
        "wlshowlast": "دکھائیں آخری $1 گھنٹے $2 دن $3",
        "watchlist-options": "اختیارات برائے زیرِنظرفہرست",
        "created": "بنا دیا گیا",
index 25867f7..5c1fd06 100644 (file)
        "talkpagelinktext": "munozara",
        "specialpage": "Maxsus sahifa",
        "personaltools": "Shaxsiy uskunalar",
-       "postcomment": "Yangi boʻlim",
        "articlepage": "Maqolani koʻrib chiqish",
        "talk": "Munozara",
        "views": "Qarashlar",
        "password-change-forbidden": "Siz bu vikida maxfiy soʻzni oʻzgartira olmaysiz.",
        "login": "Kirish",
        "nav-login-createaccount": "Kirish / Hisob yaratish",
-       "loginprompt": "{{SITENAME}}ga kirish uchun kukilar yoqilgan bo'lishi kerak.",
        "userlogin": "Kirish / Hisob yaratish",
        "userloginnocreate": "Kirish",
        "logout": "Chiqish",
        "searchprofile-advanced-tooltip": "Belgilangan nomfazolardan qidirish",
        "search-result-size": "$1 ({{PLURAL:$2|1 ta soʻz|$2 ta soʻz}})",
        "search-result-category-size": "$1 {{PLURAL:$1|a'zo|a'zolar}} ($2 {{PLURAL:$2|ostturkum|ostturkumlar}}, $3 {{PLURAL:$3|fayl|fayllar}}).",
-       "search-result-score": "Relavantlik: $1%.",
        "search-redirect": "(yoʻnaltirish $1)",
        "search-section": "($1 boʻlimi)",
        "search-suggest": "Balki buni nazarda tutgandirsiz: $1",
        "filestatus": "Tarqatish shartlari:",
        "filesource": "Manba:",
        "ignorewarnings": "Ogohlantirishlarga eʼtibor qilma",
-       "uploadedimage": "\"[[$1]]\"ni yukladi",
-       "overwroteimage": "\"[[$1]]\"ning yangi versiyasini yukladi",
        "upload-source": "Yuklanayotgan fayl",
        "sourcefilename": "Fayl nomi:",
        "destfilename": "Fayl nomi:",
        "notanarticle": "Maqola emas",
        "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 $3",
        "watchlist-options": "Kuzatuv roʻyxati moslamalari",
        "watching": "Kuzatish...",
index 09c4ce1..67a4e39 100644 (file)
        "talkpagelinktext": "Discussion",
        "specialpage": "Pagina speciale",
        "personaltools": "Strumenti personali",
-       "postcomment": "Nova sesion",
        "articlepage": "Varda ła voxe",
        "talk": "Discussion",
        "views": "Visite",
        "externaldberror": "Se xè verifegà n'erore con el server de autenticasion esterno, opure no se dispone de łe autorizasion nesesarie par ajornare el proprio aceso esterno.",
        "login": "Entra",
        "nav-login-createaccount": "Entra / Regìstrete",
-       "loginprompt": "Par entrar su {{SITENAME}} te ghè da verghe i cookie ativà.",
        "userlogin": "Entra / Regìstrete",
        "userloginnocreate": "Entra",
        "logout": "Và fora",
        "searchprofile-advanced-tooltip": "Serca nei namespace personalixài",
        "search-result-size": "$1 ({{PLURAL:$2|na parola|$2 parole}})",
        "search-result-category-size": "{{PLURAL:$1|1 utente|$1 utenti}} ({{PLURAL:$2|1 sotocategoria|$2 sotocategorie}}, {{PLURAL:$3|1 file|$3 file}})",
-       "search-result-score": "Rilevansa: $1%",
        "search-redirect": "(redirect $1)",
        "search-section": "(sesion $1)",
        "search-suggest": "Sercavito forsi: $1",
        "uploadwarning": "Avixo de caricamento",
        "uploadwarning-text": "Par piaser, cànbia la descrission del file qua de soto e próa da novo.",
        "savefile": "Salva file",
-       "uploadedimage": "ga cargà \"[[$1]]\"",
-       "overwroteimage": "gà cargà na version nova de \"[[$1]]\"",
        "uploaddisabled": "Semo spiacenti, ma el caricamento de file el xe tenporaneamente sospeso.",
        "copyuploaddisabled": "El caricamento tramite URL el xe disabilità.",
        "uploaddisabledtext": "El caricamento dei file no'l xe mìa ativo.",
        "watchlist-details": "Te sì drio tegner d'ocio {{PLURAL:$1|una pagina (e la so pagina de discussion)|$1 pagine (e le so pagine de discussion)}}.",
        "wlheader-enotif": "Xe ativà la notifica via e-mail.",
        "wlheader-showupdated": "Le pagine che xe stà canbià da la to ultima visita le xe segnà in '''grosso'''",
+       "wlnote": "Cuà soto te cati {{PLURAL:$1|'l ultimo canbiamento|i ultimi '''$1''' canbiamenti}} inte {{PLURAL:$2|l'ultema ora|łe ultime '''$2''' ore}}; i dati i xe axornai a łe $4 del $3.",
        "wlshowlast": "Mostra le ultime $1 ore $2 zorni $3",
        "watchlist-options": "Inpostassion de le pagine tegnùe d'ocio",
        "watching": "Taco a tegner d'ocio...",
        "duplicate-defaultsort": "Ocio: la ciave de ordinamento predefinìa \"$2\" la va in conflito co' quela de prima \"$1\".",
        "version": "Version",
        "version-extensions": "Estension instalè",
+       "version-skins": "Aspeto grafego",
        "version-specialpages": "Pagine speciali",
        "version-parserhooks": "Hook del parser",
        "version-variables": "Variabili",
        "version-antispam": "Prevension del spam",
-       "version-skins": "Aspeto grafego",
        "version-other": "Altro",
        "version-mediahandlers": "Gestori de contenuti multimediài",
        "version-hooks": "Hook",
index 07ba40c..d00ada8 100644 (file)
        "talkpagelinktext": "Lodu",
        "specialpage": "Specialine lehtpol'",
        "personaltools": "Personaližed azeged",
-       "postcomment": "Uz' jaguz",
        "articlepage": "Kacu südäimišton lehtpol'",
        "talk": "Diskussii",
        "views": "Kacundad",
        "externaldberror": "Ozaižihe petuz autentifikacijan, kudamb tehtihe andmusiden irdbazan turbiš, aigan, vai teile ei ulotu oiktusid toižetada ičetoi irdregistracijad.",
        "login": "Kirjutadas sistemha",
        "nav-login-createaccount": "Kirjutadas / Sada registracii",
-       "loginprompt": "Pidab laskta sada \"cookies\", miše kirjutadas {{SITENAME}}he.",
        "userlogin": "Kirjutadas / Sada registracii",
        "userloginnocreate": "Kirjutagatoiš sistemha",
        "logout": "Lähtta",
        "searchprofile-advanced-tooltip": "Ectä märitud nimiavarusiš",
        "search-result-size": "$1 ({{PLURAL:$2|1 sana|$2 sanad}})",
        "search-result-category-size": "{{PLURAL:$1|1 element|$1 elementad}} ({{PLURAL:$2|1 alakategorii|$2 alakategorijad}}, {{PLURAL:$3|1 fail|$3 failad}})",
-       "search-result-score": "Relevantižuz: $1%",
        "search-redirect": "(oigenduz $1)",
        "search-section": "(jaguz $1)",
        "search-suggest": "Tahtoižit-ik löuta: $1",
        "file-exists-duplicate": "Nece fail om {{PLURAL:$1|necen failan|neniden failoiden}} dublikat:",
        "uploadwarning": "Varutuz jügutoitmižes",
        "savefile": "Kirjutada fail",
-       "uploadedimage": "om jügutoitnu \"[[$1]]\"",
-       "overwroteimage": "jügutoiti \"[[$1]]\"-failan uden versijan",
        "uploaddisabled": "Jügutoitand om kel'tud",
        "uploaddisabledtext": "Failoiden jügutoitand om sauptud.",
        "php-uploaddisabledtext": "Failoiden jügutoitand om kel'tud PHP:n järgendusiš. Kodvgat \"file_uploads\"-järgenduz.",
        "duplicate-defaultsort": "'''Varutuz:''' Sortiruindan avadim äugotižjärgendusen mödhe \"$2\" toižetab edeližen avadimen äugotižjärgendusen mödhe \"$1\".",
        "version": "Versii",
        "version-extensions": "Seižutadud ližad",
+       "version-skins": "Nägutemad",
        "version-specialpages": "Specialižed lehtpoled",
        "version-parserhooks": "Sintaksižen analizatoran sabustajad",
        "version-variables": "Vajehtujad lugud",
        "version-antispam": "Antispam",
-       "version-skins": "Nägutemad",
        "version-other": "Toine",
        "version-mediahandlers": "Median radimed",
        "version-hooks": "Sabutajad",
index b8bdf65..e7a4a53 100644 (file)
        "searchprofile-advanced-tooltip": "Tìm trong không gian tên tùy chọn",
        "search-result-size": "$1 ({{PLURAL:$2|1 từ|$2 từ}})",
        "search-result-category-size": "$1 trang thành viên ($2 thể loại con, $3 tập tin)",
-       "search-result-score": "Độ phù hợp: $1%",
        "search-redirect": "(đổi hướng $1)",
        "search-section": "(đề mục $1)",
        "search-file-match": "(khớp nội dung tập tin)",
index 39099bc..8eefeb6 100644 (file)
        "talkpagelinktext": "Disghusjoon",
        "specialpage": "Schbedsjaal-sajdn",
        "personaltools": "Ajchne werchdsajch",
-       "postcomment": "Najn abschnid",
        "articlepage": "D'inhalds-sajdn dsajchn",
        "talk": "Disghusjoon",
        "views": "Ôôsichdn",
        "remembermypassword": "Miid den Brauser dauerhafd ogmeld bleim (maximal $1 {{PLURAL:$1|Dooch|Dooch}})",
        "login": "Ôômeldn",
        "nav-login-createaccount": "Oomeldn / Ghondoo ooleeng",
-       "loginprompt": "Zum Omelldn mäin Guggies agdivierd sei.",
        "userlogin": "Ôômeldn / Als Bajdräächâr ajschrajm",
        "logout": "Abmeldn",
        "userlogout": "Abmeldn",
        "searchprofile-advanced-tooltip": "Soung in weidere Namensraim",
        "search-result-size": "$1 ({{PLURAL:$2|1 wôrd|$2 wärdâr}})",
        "search-result-category-size": "{{PLURAL:$1|1 Seidn|$1 Seidn}} ({{PLURAL:$2|1 Untergadegorii|$2 Untergadegoriin}}, {{PLURAL:$3|1 Dadei|$3 Dadein}})",
-       "search-result-score": "Âjschleechich: $1 %",
        "search-redirect": "(Wajdalajdung fon „$1“ häa)",
        "search-section": "(Abschnid $1)",
        "search-suggest": "Hasd ajchndlich gmaand „$1“?",
        "upload": "Nauflôôdn",
        "uploadlogpage": "Brodoghol fom dadaj-hoochlôôdn",
        "filedesc": "Bschreibung",
-       "uploadedimage": "had „[[$1]]“ naufglôôdn",
        "license": "Lizenz",
        "license-header": "Lizenz",
        "file-anchor-link": "Daddei",
index b073f11..84c90c1 100644 (file)
        "talkpagelinktext": "Bespik",
        "specialpage": "Pad patik",
        "personaltools": "Stums pösodik",
-       "postcomment": "Diläd nulik",
        "articlepage": "Jonön ninädapadi",
        "talk": "Bespik",
        "views": "Logams",
        "externaldberror": "U ejenon fümükamapöl plödik nünödema, u no dalol atimükön kali plödik ola.",
        "login": "Nunädolös obi",
        "nav-login-createaccount": "Nunädön oki / jafön kali",
-       "loginprompt": "Mutol mögükön „kekilis“ ad kanön nunädön oli in {{SITENAME}}.",
        "userlogin": "Nunädön oki / jafön kali",
        "userloginnocreate": "Nunädön oki",
        "logout": "Senunädön oki",
        "searchprofile-advanced-tooltip": "Sukön in nemaspads patik",
        "search-result-size": "$1 ({{PLURAL:$2|vöd 1|vöds $2}})",
        "search-result-category-size": "{{PLURAL:$1|liman 1|limans $1}} ({{PLURAL:$2|donaklad 1|donaklads $2}}, {{PLURAL:$3|ragiv 1|ragivs $3}})",
-       "search-result-score": "Demäd: $1%",
        "search-redirect": "(lüodüköm: $1)",
        "search-section": "(diläd: $1)",
        "search-suggest": "Ediseinol-li: $1 ?",
        "file-deleted-duplicate": "Ragiv votik, kel leigon ko ragiv at ([[:$1]]), pemoükon büo. Sötol kontrolön moükamajenotemi ragiva et büä odönulöpükol oni.",
        "uploadwarning": "Löpükamanuned",
        "savefile": "Dakipolöd ragivi",
-       "uploadedimage": "\"[[$1]]\" pelöpüköl",
-       "overwroteimage": "fomami nulik ragiva: „[[$1]]“ pelöpükon",
        "uploaddisabled": "Löpükam penemögükon",
        "uploaddisabledtext": "Löpükam ragivas penemögükon.",
        "uploadscripted": "Ragiv at ninükon eli HTML u vödis programapüka, kelis bevüresodanaföm ba opölanätäpreton",
        "watchlist-details": "{{PLURAL:$1|pad $1|pads $1}} su galädalised, plä bespikapads.",
        "wlheader-enotif": "Nunam medü pot leäktronik pemögükon.",
        "wlheader-showupdated": "Pads pos visit lätik ola pevotüköls papenons '''me tonats bigik'''",
+       "wlnote": "Is palisedons votükam{{PLURAL:$1| lätik|s lätik '''$1'''}} dü düp{{PLURAL:$2| lätik|s lätik '''$2'''}}.",
        "wlshowlast": "Jonolöd: düpis lätik $1, delis lätik $2, $3",
        "watchlist-options": "Paramets galädaliseda",
        "watching": "Papladon ini galädalised...",
        "duplicate-defaultsort": "Nüned: Leodükamakik kösömik: „$2“ buon bu leodükamakik kösömik büik: „$1“.",
        "version": "Fomam",
        "version-extensions": "Veitükumams pestitöl",
-       "version-specialpages": "Pads patik",
        "version-skins": "Fomäts",
+       "version-specialpages": "Pads patik",
        "version-other": "Votik",
        "version-hooks": "Huköms",
        "version-hook-name": "Hukömanem",
index 3154416..28d38e7 100644 (file)
        "remembermypassword": "Mäleht minuu (enintään $1 {{PLURAL:$1|päivä|päivää}})",
        "login": "Cirjut süäme",
        "nav-login-createaccount": "Cirjut süäme vai registriiroit cäüttijässi",
-       "loginprompt": "Tüü piättä «cookies» võttamin luvata, štobõ entä sisteema ete esitellä.",
        "userlogin": "Cirjut süäme",
        "userloginnocreate": "Cirjut süäme",
        "logout": "Cirjut uloz",
        "filename": "Failinimi",
        "filedesc": "Turvotuz",
        "fileuploadsummary": "Turvotuz:",
-       "uploadedimage": "\"[[$1]]\" on laajõngoitõttu ülez",
        "license": "Litseenttsija:",
        "license-header": "Litseenttsija",
        "imgfile": "faili",
index b942a82..9461efe 100644 (file)
        "talkpagelinktext": "Arotus",
        "specialpage": "Tallituslehekülg",
        "personaltools": "Erätüüriistaq",
-       "postcomment": "Vahtsõnõ alajago",
        "articlepage": "Artiklilehekülg",
        "talk": "Arotus",
        "views": "Kaemisõq",
        "externaldberror": "Välitsen kimmästegemisteedüskogon om viga vai olõ-i sul lubat umma pruukjanimme muutaq.",
        "login": "Nimega sisseminek",
        "nav-login-createaccount": "Mineq nimega sisse",
-       "loginprompt": "{{SITENAME}} lask nimega sisse õnnõ sis, ku lubatas valmistuisi.",
        "userlogin": "Mineq nimega sisse vai luuq pruukjanimi",
        "userloginnocreate": "Nimega sisseminek",
        "logout": "Nime alt välläminek",
        "fileexists-shared-forbidden": "Sama nimega teedüstü om jo olõman jaetuidõ teedüstüide hulgan. Pästäq teedüstü mõnõ tõõsõ nime ala. Parhillanõ teedüstü: [[File:$1|thumb|center|$1]]",
        "uploadwarning": "Üleslaatmishoiatus",
        "savefile": "Pästäq teedüstü ärq",
-       "uploadedimage": "laadõ üles \"$1\"",
-       "overwroteimage": "üles laadit \"[[$1]]\" vahtsõnõ kujo",
        "uploaddisabled": "Üleslaatminõ lää-s kõrda",
        "uploaddisabledtext": "Teedüstü üleslaatminõ om keelet.",
        "uploadscripted": "Seol teedüstül om HTML-kuud vai skripte, minkast võrgokaeja või võlssi arvo saiaq.",
        "watchlist-details": "Perräkaemisnimekirän om {{PLURAL:$1|$1 leht|$1 lehte}}, rehkendämäldä arotuslehti.",
        "wlheader-enotif": "E-postiga teedäqandmisõq ommaq käügin.",
        "wlheader-showupdated": "Leheq, midä om muudõt päält su viimäst käümist, ommaq '''paksun kirän'''",
+       "wlnote": "Tan om '''$1''' {{PLURAL:$1|muutminõ|muutmist}} viimädse '''$2''' tunni ao seen.",
        "wlshowlast": "Näütäq viimädseq $1 tunni $2 päivä $3",
        "watchlist-options": "Perräkaemisnimekirä säädmine",
        "watching": "Pandas perräkaemisnimekirjä...",
index 6b870e7..49957ca 100644 (file)
        "talkpagelinktext": "Copiner",
        "specialpage": "Pådje sipeciåle",
        "personaltools": "Usteyes da vosse",
-       "postcomment": "Novele seccion",
        "articlepage": "Vey l' årtike",
        "talk": "Copene",
        "views": "Vuwes",
        "yourdomainname": "Vosse dominne",
        "login": "S' elodjî",
        "nav-login-createaccount": "Ahiver on conte, udon-bén s' elodjî",
-       "loginprompt": "Vos dvoz permete les coûkes po vs elodjî so {{SITENAME}}.",
        "userlogin": "S' elodjî",
        "userloginnocreate": "S' elodjî",
        "logout": "Si dislodjî",
        "searchprofile-advanced-tooltip": "Tchoezixhoz les espåces di lomaedje ki vos vloz rwaitî pol cweraedje",
        "search-result-size": "$1 ($2 mot{{PLURAL:$2||s}})",
        "search-result-category-size": "$1 mimbe{{PLURAL:$1||s}} ($2 dizo-categoreye{{PLURAL:$2||s}}, $3 fitchî{{PLURAL:$3||s}})",
-       "search-result-score": "Pertinance: $1%",
        "search-redirect": "(redjiblé di $1)",
        "search-section": "(seccion $1)",
        "search-suggest": "Sayîz motoit çoula: $1",
        "fileexists-shared-forbidden": "I gn a ddja on fitchî avou ç' no la e ridant des fitchîs pårtaedjîs.\nRivnoz s' i vs plait en erî et s' reberwetez l' fitchî dizo èn ôte no si vos vloz.\n[[File:$1|thumb|center|$1]]",
        "uploadwarning": "Adviertixhmint so l' eberwetaedje",
        "savefile": "Schaper l' fitchî",
-       "uploadedimage": "eberwetaedje di «[[$1]]»",
        "uploaddisabled": "Eberwetaedje di fitchîs dismetou",
        "uploaddisabledtext": "L' eberwetaedje di fitchîs a stî dismetou.",
        "uploadscripted": "Ci fitchî ci a-st å dvins do côde HTML ou on scripe ki pôreut esse må comprin pa on betchteu waibe.",
        "watchlist-details": "Vos avoz {{PLURAL:$1|$1 pådje shuvowe|$1 pådjes shuvowes}} (sins conter les pådjes di copene).",
        "wlheader-enotif": "Li notifiaedje pa emile est en alaedje.",
        "wlheader-showupdated": "Les pådjes k' ont candjî dispoy vosse dierinne vizite sont metowes e '''cråssès letes'''",
+       "wlnote": "Chal pa dzo {{PLURAL:$1|li dierin candjmint|les '''$1''' dierins candjmints}} {{PLURAL:$2|del dierinne eure|des '''$2''' dierinnès eures}}, disk' å $3 a $4.",
        "wlshowlast": "Mostrer les dierin(nè)s $1 eures, $2 djoûs ou $3",
        "watchlist-options": "Tchuzes del djivêye des shuvous",
        "enotif_reset": "Mårker totes les pådjes come vizitêyes",
        "watchlisttools-edit": "Vey et candjî l' djivêye des shuvous",
        "version": "Modêye des programes",
        "version-extensions": "Rawetes d' astalêyes",
+       "version-skins": "Peas",
        "version-specialpages": "Pådjes sipeciåles",
        "version-variables": "Variåves",
        "version-antispam": "Siconte do spam",
-       "version-skins": "Peas",
        "version-other": "Ôtes",
        "version-license": "Licince",
        "version-software": "Programes astalés",
index 6b032f6..7d6b931 100644 (file)
        "talkpagelinktext": "Hiruhimangraw",
        "specialpage": "Pinaurog nga pakli",
        "personaltools": "Mga pankalugaringon nga garamiton",
-       "postcomment": "Bag-o nga bahin",
        "articlepage": "Kitaa in may sulod nga pakli",
        "talk": "Hiruhimangraw",
        "views": "Mga paglantaw",
        "externaldberror": "Mayda authenticaton database error o diri ka tinutugotan pag-update an imo akwant ha gawas.",
        "login": "Sakob",
        "nav-login-createaccount": "Magpalista nga masakob / paghimo hin bag-o nga akawnt",
-       "loginprompt": "Kinahanglan mo hin mga kuki (''cookie'') para makapag log-in ha {{SITENAME}}.",
        "userlogin": "Magpasabot nga masakob / paghimo hin akawnt",
        "userloginnocreate": "Magpasabot nga masakob",
        "logout": "Gawas",
        "searchprofile-advanced-tooltip": "Pamilnga ha mga nabatasan nga ngaran-lat'ang",
        "search-result-size": "$1 ({{PLURAL:$2|1 nga pulong|$2 nga mga pulong}})",
        "search-result-category-size": "{{PLURAL:$1|1 nga api|$1 nga mga api}} ({{PLURAL:$2|1 nga ubos-nga-kaarangay|$2 nga mga ubos-nga-kaarangay}}, {{PLURAL:$3| 1 nga fayl|$3 nga mga fayl}})",
-       "search-result-score": "Pagkaangay: $1%",
        "search-redirect": "(redirekta $1)",
        "search-section": "(bahin $1)",
        "search-suggest": "Buot sidngon mo ba: $1",
        "windows-nonascii-filename": "Ini nga wiki in diri nakasuportado han mga ngaran-han-paypay nga may-ada pinaurog nga mga karakter.",
        "uploadwarning": "Pahimatngon han pagkarga paigbaw",
        "savefile": "Igtipig an paypay",
-       "uploadedimage": "ginkarga-paigbaw \"[[$1]]\"",
-       "overwroteimage": "Ginkaraga an bag-o nga bersyon han \"[[$1]]\"",
        "uploaddisabled": "Waray ginpagana an pagkarga paigbaw",
        "copyuploaddisabled": "An pagkarga paigbaw pinaagi hin URL in waray ginpagana",
        "uploaddisabledtext": "An mga pagkarga-paigbaw in diri ginpapagana.",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|hiruhimangraw]])",
        "duplicate-defaultsort": "'''Pahimatngon:''' An daan-aada nga paglainlain nga piridlitan nga \"$2\" in igsasapaw an durudaan nga daan-aada nga paglainlain nga piridlitan nga \"$1\".",
        "version": "Bersyon",
+       "version-skins": "Mga panit",
        "version-specialpages": "Mga pinaurog nga pakli",
        "version-parserhooks": "Mga kawil parser",
        "version-variables": "Mga variable",
        "version-antispam": "Pamugong hin spam",
-       "version-skins": "Mga panit",
        "version-other": "iba",
        "version-mediahandlers": "Mga nakapot han medya",
        "version-hooks": "Mga kawil",
index 665f693..e3a99fe 100644 (file)
        "talkpagelinktext": "Diisoo",
        "specialpage": "Xëtu jagleel",
        "personaltools": "Samay jumtukaay",
-       "postcomment": "Xaaj bu bees",
        "articlepage": "Gis jukki bi",
        "talk": "Waxtaan",
        "views": "Xool yo",
        "externaldberror": "Njuumte judd na ci dàttub njoxe bi, walla day ni rekk amuloo sañ-sañu yeesal sa sàqum biti.",
        "login": "xammeeku",
        "nav-login-createaccount": "Dugg / Bindu",
-       "loginprompt": "Faaw nga doxal cookie yi ngir man a dugg ci {{SITENAME}}.",
        "userlogin": "Dugg / Bindu",
        "logout": "Génnu",
        "userlogout": "Génnu",
        "searchprofile-everything-tooltip": "Seet fépp (ba ci xëti waxtaanuwaay yi)",
        "searchprofile-advanced-tooltip": "Seet ci barabi tur yi",
        "search-result-size": "$1 ({{PLURAL:$2|1 baat|$2 baat}})",
-       "search-result-score": "Baaxaay: $1%",
        "search-redirect": "(jubluwaat bu jëm $1)",
        "search-section": "(xaaj $1)",
        "search-suggest": "Xéj-na lii nga doon seet: $1",
        "file-exists-duplicate": "ŋara wi ñaaralub {{PLURAL:$1| ŋara wii di toftal la| ŋara yii di toftal lañu}} :",
        "uploadwarning": "Moytul !",
        "savefile": "Denc dencukaay bi",
-       "uploadedimage": "Yeb na « [[$1]] »",
-       "overwroteimage": "moo yeb sumb bu bees bu « [[$1]] »",
        "uploaddisabled": "Di jéeggalu, yebug dencukaay yi dañ koo doxadilandi.",
        "uploaddisabledtext": "Yebug dencukaay yi dañ koo doxadil.",
        "uploadscripted": "Wii ŋara dafa am yoonug HTML walla ab script bu ab joowukaayub web mana tekke ci anam gu baaxul.",
        "unwatchthispage": "Bul toppati",
        "watchlist-details": "Topp nga $1 {{PLURAL:$1|xët|ciy xët}}, soo waññiwaalewul xëti waxtaanuwaay yi.",
        "wlheader-showupdated": "Xët yi ñu soppiwoon ca sa duggu bu mujj ñoom la ñu fesal ñu <b>xëm</b>",
+       "wlnote": "Fii ci suuf {{PLURAL:$1| ngay gis coppite yu mujj yi|ngay gis $1 coppite yu mujj}} ci {{PLURAL:$2|waxtu gu mujj gi|<b>$2</b> waxtu yu mujj}}.",
        "wlshowlast": "wone $1 waxtu yu mujj, $2 bess yu mujj, walla $3.",
        "watchlist-options": "Tànneefi limu toppte bi",
        "watching": "Topp...",
index 596b8d7..c952187 100644 (file)
        "talkpagelinktext": "Меткән",
        "specialpage": "Көдлхнә халх",
        "personaltools": "Эврән зер-зев",
-       "postcomment": "Шин хүв",
        "articlepage": "Зүүл үзх",
        "talk": "Меткән",
        "views": "Хәләврүд",
        "yourdomainname": "Тана домен:",
        "login": "Орлһн",
        "nav-login-createaccount": "Харһх / бичгдлһн кех",
-       "loginprompt": "{{SITENAME}} тал орлһна төлә, та «cookies» олзлдг кергтә.",
        "userlogin": "Орх аль бичгдлһиг бүтәх",
        "userloginnocreate": "Харһх",
        "logout": "Һарх",
        "searchprofile-articles-tooltip": "$1 гидг зүүлд хәәх",
        "searchprofile-images-tooltip": "Боомг хәәх",
        "search-result-size": "$1 ({{PLURAL:$2|$2 үг|$2 үгмүд|$2 үгмүд}})",
-       "search-result-score": "Әдлцән: $1 %",
        "search-redirect": "(авч одлһн $1)",
        "search-section": "($1 хүв)",
        "search-suggest": "Та эниг таанат: $1 ?",
        "filedesc": "Учр-утх",
        "fileuploadsummary": "Учр-утх:",
        "savefile": "Хадһлх",
-       "uploadedimage": "«[[$1]]» тәвв",
        "upload-success-subj": "Йовудта тәвллһн",
        "license": "Закан:",
        "license-header": "Закан:",
index c8c247b..c71079f 100644 (file)
        "yourdomainname": "თქვან დომენ",
        "login": "მიშულა",
        "nav-login-createaccount": "მიშულა/ანგარიშიშ გონწყუმა",
-       "loginprompt": "{{SITENAME}}-შა მიშაულარო ოხვილუთ ეკაკილეფიშ (cookies) გოაქტიურაფას.",
        "userlogin": "მიშულა/ანგარიშიშ გონწყუმა",
        "logout": "გიშულა",
        "userlogout": "გიშულა",
        "uploadbtn": "ფაილიშ გეთება",
        "uploadlogpage": "ეხარგუაშ ორეგისტრირებელ ჟურნალ",
        "filedesc": "რეზიუმე",
-       "uploadedimage": "ეხარგელი რე \"[[$1]]\"",
        "license": "ლიცენზირაფა:",
        "license-header": "ლიცენზირაფა",
        "listfiles": "სურათეფიშ ერკებულ",
index 45675e0..71252d3 100644 (file)
        "hidetoc": "באַהאַלטן",
        "collapsible-collapse": "אײַנציען",
        "collapsible-expand": "פֿאַרברייטערן",
+       "confirmable-confirm": "צי זענט {{GENDER:$1|איר}} זיכער?",
+       "confirmable-yes": "יא",
+       "confirmable-no": "ניין",
        "thisisdeleted": "זען אדער צוריקשטעלן $1?",
        "viewdeleted": "זען $1?",
        "restorelink": "{{PLURAL:$1|איין געמעקטע ענדערונג|$1 געמעקטע ענדערונגען}}",
        "invalidtitle-knownnamespace": "אומגילטירער טיטל מיט נאמענטייל \"$2\" און טעקסט \"$3\"",
        "invalidtitle-unknownnamespace": "אומגילטיקער טיטל מיט אומבאוואוסטן נאמענטייל נומער $1 און טעקסט \"$2\"",
        "exception-nologin": "נישט אַרײַנלאגירט",
-       "exception-nologin-text": "×\90×\99ר ×©×\90פר×\98 ×\96×\99×\99×\9f [[Special:Userlogin|×\90ר×\99×\99× ×\9c×\90×\92×\99ר×\98]] to כדי צו קענען צוקומען צו דעם בלאט אדער דער אקציע.",
+       "exception-nologin-text": "×\96ײַ×\98 ×\90×\96×\95×\99 ×\92×\95×\98 ×\90רײַנ×\9c×\90×\92×\99ר×\9f כדי צו קענען צוקומען צו דעם בלאט אדער דער אקציע.",
        "exception-nologin-text-manual": "זייט אזוי גוט $1 כדי צו קענען צוקומען צו דעם בלאט אדער דער אקציע.",
        "virus-badscanner": "שלעכטע קאנפֿיגוראציע: אומבאוואוסטער ווירוס איבערקוקער: ''$1''",
        "virus-scanfailed": "איבערקוקן נישט געראטן (קאד: $1)",
        "parser-template-recursion-depth-warning": "מוסטער רעקורסיע טיף מאקסימום איבערגעשטיגן ($1)",
        "language-converter-depth-warning": "אַריבער דעם שפּראַך קאַנווערטער טיף לימיט ($1)",
        "node-count-exceeded-category": "בלעטער וואו קנופצאל איז צו פיל",
-       "node-count-exceeded-category-desc": "×\90 ×§×\90×\98×¢×\92×\90ר×\99×¢ ×¤×\90ר ×\91×\9c×¢×\98ער ×\95×\95×\90×\95 ×\93×\99 ×§× ×\95פצ×\90×\9c ×\90×\99×\96 ×¦×\95 ×¤×\99ל.",
-       "node-count-exceeded-warning": "קנ×\95פנצ×\90×\9c ×\90×\95×\99פ×\9f ×\91×\9c×\90×\98 ×¦×\95 ×\94×\95×\99×\9a",
+       "node-count-exceeded-category-desc": "×\93×\99ר ×\91×\9c×\90×\98 ×©×\98×\99×\99×\92×\98 ×\90×\99×\91ער ×\93×\99 ×\9e×\90קס×\99×\9e×\95×\9d ×§× ×\95פצ×\90ל.",
+       "node-count-exceeded-warning": "×\93ער ×\91×\9c×\90×\98 ×\90×\99×\96 ×\90×\99×\91ער×\92עש×\98×\99×\92×\9f ×\93×¢×\9d ×§× ×\95פנצ×\90×\9c",
        "expansion-depth-exceeded-category": "בלעטער וואו מ'האט אריבערגעשטיגן די פארברייטערונג טיף",
-       "expansion-depth-exceeded-category-desc": "×\93×\90ס ×\90×\99×\96 ×\90 ×§×\90×\98×¢×\92×\90ר×\99×¢ ×¤×\90ר ×\91×\9c×¢×\98ער ×\95×\95×\90ס ×©×\98×\99×\92×\9f ×\90×\99×\91ער ×\93ער פארברייטערן־טיף.",
+       "expansion-depth-exceeded-category-desc": "×\93ער ×\91×\9c×\90×\98 ×©×\98×\99×\99×\92×\98 ×\90×\99×\91ער ×\93×\99 פארברייטערן־טיף.",
        "expansion-depth-exceeded-warning": "בלאט גייט אריבער דער פארברייטערונג טיף",
        "parser-unstrip-loop-warning": "פעטליע געטראפֿן",
        "converter-manual-rule-error": "געטראפן א גרײַז אין האנטלעכן שפראך־קאנווערטירן כלל",
        "preferences": "פרעפֿערענצן",
        "mypreferences": "פּרעפֿערענצן",
        "prefs-edits": "צאָל ענדערונגען:",
-       "prefsnologintext2": "זייט אזוי גוט $1 כדי צו שטעלן באניצער פרעפערענצן.",
+       "prefsnologintext2": "זייט אזוי גוט ארײַנלאגירן כדי צו ענדערן אײַערי באניצער פרעפערענצן.",
        "prefs-skin": "סקין",
        "skin-preview": "פארויסדיגע ווייזונג",
        "datedefault": "נישטא קיין פרעפערענץ",
        "upload-options": "אַרויפֿלאָדן ברירה'ס",
        "watchthisupload": "אויפֿפאַסן דעם בלאט",
        "filewasdeleted": "א טעקע מיט דעם נאמען האט מען שוין ארויפגעלאדן און דערנאך אויסגעמעקט.\nאיר זאלט בודק זיין דעם $1 איידער איר הייבט אן ארויפלאדן ווידעראמאל.",
+       "filename-bad-prefix": "דער נאמען פון דער טעקע וואס איר לאדט ארויף הייבט אן מיט  <strong>\"$1\"</strong>, וואס איז אן אלגעמיינער נאמען געשטעלט פון א דיגיטאלישער קאמערע.\nזײַט אזוי גוט קלויבט א נאמען פאר דער טעקע ואס באשרײַבט איר אינהאלט.",
        "upload-success-subj": "דערפֿאלגרייכער ארויפֿלאָד",
        "upload-success-msg": "אײַער אַרויפֿלאָד פֿון [$2] איז געווען דערפֿאלגרייך. עס איז פֿאַראָן דאָ: [[:{{ns:file}}:$1]]",
        "upload-failure-subj": "אַרויפֿלאָדן פראבלעם",
        "mywatchlist": "אויפפַּאסונג ליסטע",
        "watchlistfor2": "פֿאַר $1 $2",
        "nowatchlist": "איר האט נישט קיין שום בלעטער אין אייער אויפפַּאסונג ליסטע.",
-       "watchlistanontext": "ביטע $1 כדי צו זען אדער ענדערן בלעטער אין אייער אַכטגעבן ליסטע.",
+       "watchlistanontext": "ביטע לאגירט ארײַן כדי צו זען אדער ענדערן בלעטער אין אייער אַכטגעבן ליסטע.",
        "watchnologin": "איר זענט נישט אַרײַנלאגירט",
        "addwatch": "צולייגן צו דער אויפֿפאַסונג ליסטע",
        "addedwatchtext": "דער בלאט \"[[:$1]]\" איז צוגעלײגט געוואָרן צו אײַער [[Special:Watchlist|אויפֿפאַסונג ליסטע]].\n\nווײַטערע ענדערונגען צו דעם בלאַט און צו זײַן פארבינדענעם רעדן בלאַט וועלן זײַן אויסגערעכנט דארט.",
        "autoblockid": "אויטאמאטיש בלאק #$1",
        "block": "בלאקירן באַניצער",
        "unblock": "אויפֿבלאקירן באניצער",
-       "blockip": "בלאקירן באַניצער",
+       "blockip": "בלאקירן {{GENDER:$1|באַניצער}}",
        "blockip-legend": "בלאקירן באַניצער",
        "blockiptext": "באניצט די פארעם דא אונטן כדי צו בלאקירן שרײַבן רעכטן פֿון איינגעשריבענע באניצער אדער סתם ספעציפישע איי פי אדרעסן.\n\nאזאלכע בלאקירונגען מוזן דורכגעפירט ווערן בלויז צו פֿאַרמײַדן וואַנדאַליזם, און לויט די [[{{MediaWiki:Policy-url}}|פארשריפטן און פאליסיס]].\n\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": "אוועקנעמען דעם בלאק",
index 0c53e99..842cc1d 100644 (file)
        "searchprofile-advanced-tooltip": "Ṣàwáàrí nínú àwọn orúkọàyè pàtó",
        "search-result-size": "$1 ({{PLURAL:$2|ọ̀rọ̀ 1|àwọn ọ̀rọ̀ $2}})",
        "search-result-category-size": "{{PLURAL:$1|ẹlẹgbẹ́ 1|àwọn ẹlẹgbẹ́ $1}} ({{PLURAL:$2|ẹ̀kà abẹ́ 1|àwọn ẹ̀kà abẹ́ $2}}, {{PLURAL:$3|fáìlì 1|àwọn fáìlì $3}})",
-       "search-result-score": "Ìbáramu: $1%",
        "search-redirect": "(àtúnjúwe $1)",
        "search-section": "(abala $1)",
        "search-suggest": "Ṣé ẹ fẹ́: $1",
        "uploadwarning": "Ìkìlọ̀ ìrùsókè",
        "uploadwarning-text": "Ẹ jọ̀wọ́ ẹ tún ìjúwe fáìlì ìsàlẹ̀ náà ṣe kí ẹ tó gbìyànjú lẹ́ẹ̀kan síi.",
        "savefile": "Ìmúpamọ́ fáìlì",
-       "uploadedimage": "\"[[$1]]\" ti jẹ́rírùsókè",
-       "overwroteimage": "ṣe ìrùsókè àtúnyẹ̀wò tuntun \"[[$1]]\"",
        "uploaddisabled": "Dídálẹ́kun àwọn ìrùsókè.",
        "copyuploaddisabled": "Ìdálẹ́kun ìrùsókè pẹ̀lú URL.",
        "uploaddisabledtext": "Dídálẹ́kun àwọn ìrùsókè fáìlì.",
        "watchlist-details": "{{PLURAL:$1|Ojúewé $1|Àwọn ojúewé $1}} ló wà nínú ìmójútó yín, tí a kò bá ka àwọn ojúewé ọ̀rọ̀.",
        "wlheader-enotif": "Ìfitónilétí e-mail wà ní gbígbàláyè.",
        "wlheader-showupdated": "Àwọn ojúewé tí wọn ti yípadà látìgbà tí ẹ ṣàbẹ̀wò wọn gbẹ̀yìn jẹ́ fífihàn ní ''kedere'''",
+       "wlnote": "Lábẹ́ {{PLURAL:$1|ni àtúnṣe tó gbẹ̀yìn|ni àwọn àtúnṣe '''$1''' tí wọn gbẹ̀yìn}} ní {{PLURAL:$2|wákàtí kan|wákàtí '''$2'''}} sẹ́yìn, títí dí ọjọ́ $3, $4.",
        "wlshowlast": "Ìfihàn wákàtí $1 sẹ́yìn ọjọ́ $2 sẹ́yìn $3",
        "watchlist-options": "Àṣàyàn ìmójútọ́",
        "watching": "Ó ún mójútó...",
index 821f78c..4b0d976 100644 (file)
@@ -19,7 +19,8 @@
                        "아라",
                        "Ktchankt",
                        "Kc kennylau",
-                       "Mywood"
+                       "Mywood",
+                       "Impersonator 1"
                ]
        },
        "tog-underline": "連結加底線:",
        "talkpagelinktext": "傾偈",
        "specialpage": "特別頁",
        "personaltools": "個人工具",
-       "postcomment": "新小節",
        "articlepage": "睇目錄",
        "talk": "討論",
        "views": "去睇",
        "externaldberror": "驗證資料庫出錯,或者唔允許你更新你嘅外部帳戶。",
        "login": "登入",
        "nav-login-createaccount": "登入/開新戶口",
-       "loginprompt": "你一定要開咗 cookies 先登入到{{SITENAME}}。",
        "userlogin": "登入/開新戶口",
        "userloginnocreate": "登入",
        "logout": "登出",
        "searchprofile-advanced-tooltip": "響自定空間名度搵",
        "search-result-size": "$1 ($2個字)",
        "search-result-category-size": "$1位成員 ($2個細類,$3個檔案)",
-       "search-result-score": "相關度: $1%",
        "search-redirect": "(跳轉 $1)",
        "search-section": "(小節 $1)",
        "search-suggest": "你係唔係搵: $1",
        "uploadwarning": "上載警告",
        "uploadwarning-text": "請修改下面嘅檔案描述再重試。",
        "savefile": "儲存檔案",
-       "uploadedimage": "上載咗\"[[$1]]\"",
-       "overwroteimage": "已經上載咗\"[[$1]]\"嘅新版本",
        "uploaddisabled": "上載已停用。",
        "copyuploaddisabled": "由URL嘅上載已經停用。",
        "uploaddisabledtext": "檔案上載已經停用。",
        "watchlist-details": "唔計討論頁,有 $1 版響你個監視清單度。",
        "wlheader-enotif": "電子郵件通知已經啟用。",
        "wlheader-showupdated": "'''粗體字'''嘅頁響你上次嚟之後被人改過",
+       "wlnote": "以下係最近'''$2'''個鐘之內嘅最新$1次修改。",
        "wlshowlast": "顯示最近 $1 個鐘 $2 日 $3 嘅修改",
        "watchlist-options": "監視清單選項",
        "watching": "監視緊...",
index 29bb0b0..e99e9f2 100644 (file)
        "talkpagelinktext": "Overleg",
        "specialpage": "Speciaole bladzie",
        "personaltools": "Persoônlijke instelliengen",
-       "postcomment": "Nuuw kopje toevoehen",
        "articlepage": "Bekiek 't artikel",
        "talk": "Overleg",
        "views": "Acties",
        "externaldberror": "Der is een fout opetreeën bie 't anmelden bie de database of je ei hin toestemmieng jen externe gebruker bie te werken.",
        "login": "Anmelden",
        "nav-login-createaccount": "Anmelden / Inschrieven",
-       "loginprompt": "Je mò cookies ineschaokeld ène om je te kunn'n anmelden bie {{SITENAME}}.",
        "userlogin": "Anmelden / Inschrieven",
        "logout": "Ofmelden",
        "userlogout": "Ofmelden",
        "searchprofile-advanced-tooltip": "Zoek'n in angegeev'n naemruumtes",
        "search-result-size": "$1 ({{PLURAL:$2|1 woôrd|$2 woôrn}})",
        "search-result-category-size": "{{PLURAL:$1|1 categorielid|$1 categorieleden}} ({{PLURAL:$2|1 ondercategorie|$2 ondercategorieën}}, {{PLURAL:$3|1 bestand|$3 bestanden}})",
-       "search-result-score": "Rillevantie: $1%",
        "search-redirect": "(deurverwiezieng $1)",
        "search-section": "(subkop $1)",
        "search-suggest": "Bedoeln je: $1",
        "ignorewarnings": "Aolle waerschuwiengen neheern",
        "minlength1": "Bestandsnaem'n mott'n minstes eên letter bevatt'n.",
        "badfilename": "Bestandsnaem is veranderd nae \"$1\".",
-       "uploadedimage": "ei \"[[$1]]\" geüpload",
        "watchthisupload": "Volg deêze bladzie",
        "license": "Licentie:",
        "license-header": "Licentie",
index 99734f5..6f28fa4 100644 (file)
@@ -78,7 +78,8 @@
                        "Mywood",
                        "Impersonator 1",
                        "Duolaimi",
-                       "TianyinLee"
+                       "TianyinLee",
+                       "NigelSoft"
                ]
        },
        "tog-underline": "链接下划线:",
@@ -95,7 +96,7 @@
        "tog-watchdefault": "添加我编辑的页面和文件至我的监视列表",
        "tog-watchmoves": "添加我移动的页面和文件至我的监视列表",
        "tog-watchdeletion": "添加我删除的页面和文件至我的监视列表",
-       "tog-watchrollback": "当我对我的监视列表执行回退时加入页面",
+       "tog-watchrollback": "添加我回退过的页面至我的监视列表",
        "tog-minordefault": "默认标记所有编辑为小编辑",
        "tog-previewontop": "将预览显示在编辑框上方",
        "tog-previewonfirst": "首次编辑时显示预览",
        "delete-edit-reasonlist": "编辑删除原因",
        "delete-toobig": "这个页面有一个十分大量的编辑历史,超过$1个版本。删除此类页面的动作已经被限制,以防止在{{SITENAME}}上的意外扰乱。",
        "delete-warning-toobig": "这个页面有一个十分大量的编辑历史,超过$1个版本。删除它可能会扰乱{{SITENAME}}的数据库操作;在继续此动作前请小心。",
+       "delete-cantedit": "您不能删除此页面,因为您没有权限编辑它。",
        "deleting-backlinks-warning": "'''警告:'''有[[Special:WhatLinksHere/{{FULLPAGENAME}}|其他页面]]链接至或包含您要删除的页面。",
        "rollback": "回退编辑",
        "rollback_short": "回退",
        "restriction-level-all": "任何级别",
        "undelete": "查看被删除页面",
        "undeletepage": "查看和还原被删除的页面",
-       "undeletepagetitle": "'''以下包含[[:$1]]的已删除之版本'''。",
+       "undeletepagetitle": "'''以下包含[[:$1|$1]]的已删除之版本'''。",
        "viewdeletedpage": "查看被删页面",
        "undeletepagetext": "以下{{PLURAL:$1|页面|$1个页面}}已被删除,但依然在归档中并可以被恢复。归档可能会被定时清理。",
        "undelete-fieldset-title": "还原版本",
        "importlogpagetext": "管理性导入在其他wiki上有编辑历史的页面。",
        "import-logentry-upload": "通过文件上传导入[[$1]]",
        "import-logentry-upload-detail": "已导入$1个{{PLURAL:$1|版本}}",
-       "import-logentry-interwiki": "跨wiki$1",
+       "import-logentry-interwiki": "跨wiki页面$1",
        "import-logentry-interwiki-detail": "已从$2导入$1个{{PLURAL:$1|版本}}",
        "javascripttest": "JavaScript测试",
        "javascripttest-title": "运行$1测试",
index 6176450..a6dc8d9 100644 (file)
        "talk": "討論",
        "views": "檢視",
        "toolbox": "工具",
-       "userpage": "檢視用戶頁",
+       "userpage": "檢視使用者頁面",
        "projectpage": "檢視專案頁面",
        "imagepage": "檢視檔案頁面",
        "mediawikipage": "檢視訊息頁面",
        "sort-descending": "降冪排序",
        "sort-ascending": "昇冪排序",
        "nstab-main": "頁面",
-       "nstab-user": "用戶頁",
+       "nstab-user": "使用者頁面",
        "nstab-media": "媒體頁面",
        "nstab-special": "特殊頁面",
        "nstab-project": "專案頁面",
        "logouttext": "<strong>您現在已登出。</strong>\n\n請注意,某些頁面會以登入的狀態持續顯示,直到您清除瀏覽器快取為止。",
        "welcomeuser": "歡迎光臨,$1!",
        "welcomecreation-msg": "您的帳號已建立。\n可至 [[Special:Preferences|偏好設定]] 更新您在 {{SITENAME}} 的個人化設定。",
-       "yourname": "用戶名:",
+       "yourname": "使用者名稱:",
        "userlogin-yourname": "使用者名稱",
-       "userlogin-yourname-ph": "輸入您的用戶名",
-       "createacct-another-username-ph": "輸入用戶名稱",
+       "userlogin-yourname-ph": "輸入您的使用者名稱",
+       "createacct-another-username-ph": "輸入使用者名稱",
        "yourpassword": "您的密碼:",
        "userlogin-yourpassword": "密碼",
        "userlogin-yourpassword-ph": "輸入您的密碼",
        "createacct-yourpassword-ph": "輸入密碼",
-       "yourpasswordagain": "再次輸入密碼:",
+       "yourpasswordagain": "再輸入密碼一次:",
        "createacct-yourpasswordagain": "確認密碼",
        "createacct-yourpasswordagain-ph": "再次輸入密碼",
        "remembermypassword": "在瀏覽器上記住我的登入資訊 (上限 $1 {{PLURAL:$1|天}})",
        "userloginnocreate": "登入",
        "logout": "登出",
        "userlogout": "登出",
-       "notloggedin": "未登入",
+       "notloggedin": "未登入",
        "userlogin-noaccount": "沒有帳號嗎?",
        "userlogin-joinproject": "加入 {{SITENAME}}",
        "nologin": "您還沒有帳號嗎? $1。",
        "missingcommentheader": "<strong>提醒:</strong>您未填寫此評論的主旨/標題。\n若您再點選 \"{{int:savearticle}}\" 一次,將略過主旨/標題直接儲存您的評論。",
        "summary-preview": "摘要預覽:",
        "subject-preview": "主旨/標題預覽:",
-       "blockedtitle": "用戶已被封鎖",
+       "blockedtitle": "使用者已被封鎖",
        "blockedtext": "<strong>您的使用者名稱或 IP 位址以被封鎖。</strong>\n\n您被 $1 封鎖,\n原因爲 <em>$2</em>。\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯繫 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵件位址,且尚未被封鎖郵件功能,則您可透過 \"傳送電子郵件給這位使用者\" 的功能來聯絡相關管理員。\n您目刖的 IP 位址是 $3,此次封鎖的 ID 爲 #$5。\n請您在詢問時附註以上詳細訊息。",
        "autoblockedtext": "因先前的另一位使用者被 $1 封鎖,您的 IP 位址已被自動封鎖。\n原因是:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯繫 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵件位址,且尚未被封鎖郵件功能,則您可透過 \"傳送電子郵件給這位使用者\" 的功能來聯絡相關管理員。\n您目刖的 IP 位址是 $3,此次封鎖的 ID 爲 #$5。\n請您在詢問時附註以上詳細訊息。",
        "blockednoreason": "未說明原因",
        "noarticletext-nopermission": "此頁面目前沒有內容,\n您可以在其它頁面中 [[Special:Search/{{PAGENAME}}|搜尋此頁面標題]],或 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋相關日誌]</span>,但您沒有權限建立此頁面。",
        "missing-revision": "頁面名稱 \"{{FULLPAGENAME}}\" 的 #$1 修訂版本不存在。\n\n通常是因連結到過期的歷史頁面,該頁面已被刪除。\n詳情請參考 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]。",
        "userpage-userdoesnotexist": "使用者帳號 \"$1\" 尚未註冊。\n若您要建立/編輯此頁面,請先檢查是否正確。",
-       "userpage-userdoesnotexist-view": "用戶帳號 \"$1\" 尚未註冊。",
+       "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> 中清除快取。",
        "usercssyoucanpreview": "<strong>提示:</strong>在儲存之前使用 \"{{int:showpreview}}\" 按鈕來測試您的新 CSS。",
        "history-feed-item-nocomment": "$1 於 $2",
        "history-feed-empty": "請求的頁面不存在,\n可能已被刪除或重新命名。\n請嘗試 [[Special:Search|搜尋本站]] 取得其他相關的新頁面。",
        "rev-deleted-comment": "(已移除編輯摘要)",
-       "rev-deleted-user": "(已移除使用者名稱)",
+       "rev-deleted-user": " (已移除使用者名稱)",
        "rev-deleted-event": "(已移除日誌)",
        "rev-deleted-user-contribs": "[使用者名稱或 IP 位址已移除 - 已隱藏貢獻清單中的編輯]",
        "rev-deleted-text-permission": "此頁面修訂已被 <strong>刪除</strong>。\n可至 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌] 取得詳細資訊。",
        "mergehistory-empty": "沒有可以合併的修訂",
        "mergehistory-success": "[[:$1]] 中 $3 次修訂已經成功地合併至 [[:$2]]。",
        "mergehistory-fail": "不可以進行歷史合併,請重新檢查該頁面以及時間參數。",
-       "mergehistory-fail-toobig": "由於超出$1個合併移動版本的上限,故此無法進行歷史合併。",
+       "mergehistory-fail-toobig": "超過 $1 個修訂移動的上限,無法進行歷史合併。",
        "mergehistory-no-source": "來源頁面 $1 不存在。",
        "mergehistory-no-destination": "目標頁面 $1 不存在。",
        "mergehistory-invalid-source": "來源頁面必須使用有效的標題。",
        "diff-multi-sameuser": "(未顯示相同使用者於中間所作的 $1 次修訂)",
        "diff-multi-otherusers": "(未顯示由 $2 位使用者於中間所作的 $1 次修訂)",
        "diff-multi-manyusers": "(未顯示由超過 $2 位使用者於中間所作的 $1 次修訂)",
-       "difference-missing-revision": "{{PLURAL:$2|1次修訂|$2 次修訂}}差異($1)不存在。\n\n這通常是因為過時的頁面修訂差異連結被刪除。\n詳情請閱[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]。",
+       "difference-missing-revision": "查無此差異 ($1) 中的{{PLURAL:$2|1 次修訂|$2 次修訂}}。\n\n這通常是因為差異的連結過時,頁面已被刪除。\n詳情資訊請參閱 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]。",
        "searchresults": "搜尋結果",
        "searchresults-title": "\"$1\" 的搜尋結果",
        "titlematches": "頁面標題符合",
        "skin-preview": "預覽",
        "datedefault": "預設值",
        "prefs-labs": "實驗中的功能",
-       "prefs-user-pages": "用戶頁",
-       "prefs-personal": "用戶基本資料",
+       "prefs-user-pages": "使用者頁面",
+       "prefs-personal": "使用者基本資料",
        "prefs-rc": "最近變更",
        "prefs-watchlist": "監視清單",
        "prefs-watchlist-days": "監視清單中顯示的天數:",
        "recentchangesdays-max": "最多 $1 {{PLURAL:$1|天}}",
        "recentchangescount": "預設顯示的編輯數:",
        "prefs-help-recentchangescount": "這包含最近變更、頁面歷史以及日誌。",
-       "prefs-help-watchlist-token2": "è¨\82é\96±æ\82¨ç\9a\84ç\9b£è¦\96æ¸\85å\96®æ\89\80é\9c\80ç\9a\84å¯\86é\91°ã\80\82\nä»»ä½\95人å\8fªè¦\81ç\9f¥é\81\93å¯\86é\91°å°±è\83½å¤ è®\80å\8f\96æ\82¨ç\9a\84ç\9b£è¦\96æ¸\85å\8d\95,所以請勿任意與它人共享。\n若有需要 [[Special:ResetTokens|您可重設密鑰]]。",
-       "savedprefs": "您的偏好設定已儲存。",
+       "prefs-help-watchlist-token2": "è¨\82é\96±æ\82¨ç\9a\84ç\9b£è¦\96æ¸\85å\96®æ\89\80é\9c\80ç\9a\84å¯\86é\91°ã\80\82\nä»»ä½\95人å\8fªè¦\81ç\9f¥é\81\93å¯\86é\91°å°±è\83½å¤ è®\80å\8f\96æ\82¨ç\9a\84ç\9b£è¦\96æ¸\85å\96®,所以請勿任意與它人共享。\n若有需要 [[Special:ResetTokens|您可重設密鑰]]。",
+       "savedprefs": "已儲存您的偏好設定。",
        "timezonelegend": "時區:",
        "localtime": "當地時間:",
        "timezoneuseserverdefault": "使用 Wiki 預設值 ($1)",
        "prefs-reset-intro": "您可以使用此頁面重設您的偏好設定為網站預設值。\n這個動作將無法復原。",
        "prefs-emailconfirm-label": "電子郵件確認:",
        "youremail": "電子郵件:",
-       "username": "{{GENDER:$1|用戶名}}:",
+       "username": "{{GENDER:$1|使用者名稱}}:",
        "prefs-memberingroups": "{{GENDER:$2|所屬}}{{PLURAL:$1|群組}}:",
        "prefs-registration": "註冊時間:",
        "yourrealname": "真實姓名:",
        "prefs-help-variant": "您希望用於顯示本站內容的語種或拼寫語系。",
        "yournick": "新的簽名:",
        "prefs-help-signature": "在對話頁面上評論時應使用 \"<nowiki>~~~~</nowiki>\" 簽名,\n該符號會轉換成您的簽名與時間。",
-       "badsig": "錯誤的原始簽名。請檢查HTML標籤。",
-       "badsiglength": "您的簽名過長。\n它的長度不可超過$1個字元。",
+       "badsig": "錯誤的原始簽名。請檢查 HTML 標籤。",
+       "badsiglength": "您的簽名過長。\n它的長度不可超過 $1 個字元。",
        "yourgender": "您希望如何被描述?",
        "gender-unknown": "我不想說明",
        "gender-male": "他編輯了 Wiki 頁面",
        "prefs-tokenwatchlist": "密鑰",
        "prefs-diffs": "差異",
        "prefs-help-prefershttps": "此偏好設定將於您下次登入時生效。",
-       "prefs-tabs-navigation-hint": "提示:您可通過左、右鍵於選項卡之間切換。",
+       "prefs-tabs-navigation-hint": "提示:您可使用左、右方向鍵切換頁籤。",
        "email-address-validity-valid": "電子郵件位址有效",
-       "email-address-validity-invalid": "請提供一個有效的電子郵件位址",
-       "userrights": "用戶權限管理",
-       "userrights-lookup-user": "管理用戶群組",
-       "userrights-user-editname": "輸入使用者名稱:",
-       "editusergroup": "編輯用戶群組",
-       "editinguser": "變更用戶<strong>[[User:$1|$1]]</strong>的用戶權限 $2",
-       "userrights-editusergroup": "編輯用戶群組",
+       "email-address-validity-invalid": "請輸入一個有效的電子郵件位址",
+       "userrights": "使用者權限管理",
+       "userrights-lookup-user": "管理使用者群組",
+       "userrights-user-editname": "è«\8b輸å\85¥ä½¿ç\94¨è\80\85å\90\8d稱ï¼\9a",
+       "editusergroup": "編輯使用者群組",
+       "editinguser": "變更使用者 <strong>[[User:$1|$1]]</strong> 的使用者權限 $2",
+       "userrights-editusergroup": "編輯使用者群組",
        "saveusergroups": "儲存使用者群組",
        "userrights-groupsmember": "所屬群組:",
        "userrights-groupsmember-auto": "所屬隱含群組:",
        "userrights-no-interwiki": "您沒有權限去編輯其它使用者在 Wiki 上的權限。",
        "userrights-nodatabase": "資料庫 $1 不存在或不在本地主機的。",
        "userrights-nologin": "您必須 [[Special:UserLogin|登入]] 管理員帳號以指定使用者權限。",
-       "userrights-notallowed": "你無權加入或刪除使用者權限。",
+       "userrights-notallowed": "您沒有權限加入或刪除使用者權限。",
        "userrights-changeable-col": "您可變更的群組",
        "userrights-unchangeable-col": "您不可變更的群組",
        "userrights-conflict": "使用者權限更改發生衝突!請重新檢視並確認你的更改。",
-       "userrights-removed-self": "æ\82¨å·²æ\88\90å\8a\9f移é\99¤è\87ªå·±ç\9a\84æ¬\8aé\99\90ï¼\8cæ\95\85æ­¤æ\82¨ç\84¡æ³\95å\86\8d次å­\98å\8f\96æ­¤é \81。",
+       "userrights-removed-self": "æ\82¨å·²æ\88\90å\8a\9f移é\99¤è\87ªå·±ç\9a\84æ¬\8aé\99\90ï¼\8cæ\82¨å·²ç\84¡æ³\95å\86\8d次å­\98å\8f\96æ­¤é \81é\9d¢。",
        "group": "群組:",
-       "group-user": "用戶",
-       "group-autoconfirmed": "自動確認使用者",
+       "group-user": "使用者",
+       "group-autoconfirmed": "自動確認使用者",
        "group-bot": "機器人",
        "group-sysop": "管理員",
        "group-bureaucrat": "行政員",
-       "group-suppress": "監督",
+       "group-suppress": "監督",
        "group-all": "(全部)",
-       "group-user-member": "{{GENDER:$1|用戶}}",
-       "group-autoconfirmed-member": "自動確認用戶",
+       "group-user-member": "{{GENDER:$1|使用者}}",
+       "group-autoconfirmed-member": "自動確認使用者",
        "group-bot-member": "機器人",
        "group-sysop-member": "{{GENDER:$1|管理員}}",
        "group-bureaucrat-member": "行政員",
        "group-suppress-member": "監督員",
-       "grouppage-user": "{{ns:project}}:用戶",
-       "grouppage-autoconfirmed": "{{ns:project}}:自動確認用戶",
+       "grouppage-user": "{{ns:project}}:使用者",
+       "grouppage-autoconfirmed": "{{ns:project}}:自動確認使用者",
        "grouppage-bot": "{{ns:project}}:機器人",
        "grouppage-sysop": "{{ns:project}}:管理員",
        "grouppage-bureaucrat": "{{ns:project}}:行政員",
        "right-minoredit": "標示編輯為小修訂",
        "right-move": "移動頁面",
        "right-move-subpages": "移動頁面與其子頁面",
-       "right-move-rootuserpages": "移動根用戶頁",
+       "right-move-rootuserpages": "移動根使用者頁面",
        "right-move-categorypages": "移動分類頁面",
        "right-movefile": "移動檔案",
        "right-suppressredirect": "移動頁面時不在原頁面位置建立重新導向頁面",
        "right-protect": "更改保護層級及編輯被連鎖保護的頁面",
        "right-editprotected": "編輯保護層級為 \"{{int:protect-level-sysop}}\" 的頁面",
        "right-editsemiprotected": "編輯保護層級為 \"{{int:protect-level-autoconfirmed}}\" 的頁面",
-       "right-editinterface": "編輯用戶介面",
+       "right-editinterface": "編輯使用者介面",
        "right-editusercssjs": "編輯其他使用者的 CSS 和 JavaScript 檔案",
        "right-editusercss": "編輯其他使用者的 CSS 檔案",
        "right-edituserjs": "編輯其他使用者的 JavaScript 檔案",
        "right-override-export-depth": "匯出頁面包含連結內容,深度上限為 5 層",
        "right-sendemail": "傳送電子郵件給其他使用者",
        "right-passwordreset": "檢視重設密碼電子郵件",
-       "newuserlogpage": "建立用戶日誌",
+       "newuserlogpage": "建立使用者日誌",
        "newuserlogpagetext": "此為建立使用者的日誌。",
-       "rightslog": "用戶權限日誌",
+       "rightslog": "使用者權限日誌",
        "rightslogtext": "此為更改使用者權限的日誌。",
        "action-read": "閱讀此頁面",
        "action-edit": "編輯此頁面",
        "action-minoredit": "標示此編輯為小修訂",
        "action-move": "移動此頁面",
        "action-move-subpages": "移動此頁面與它的子頁面",
-       "action-move-rootuserpages": "移動根用戶頁",
+       "action-move-rootuserpages": "移動根使用者頁面",
        "action-move-categorypages": "移動分類頁面",
        "action-movefile": "移動此檔案",
        "action-upload": "上傳此檔案",
        "action-sendemail": "傳送電子郵件",
        "action-editmywatchlist": "編輯您的監視清單",
        "action-viewmywatchlist": "檢視您的監視清單",
-       "action-viewmyprivateinfo": "檢視您的個人資",
-       "action-editmyprivateinfo": "編輯您的個人資",
+       "action-viewmyprivateinfo": "檢視您的個人資",
+       "action-editmyprivateinfo": "編輯您的個人資",
        "nchanges": "$1 次變更",
        "enhancedrc-since-last-visit": "自上次訪問已有 $1",
        "enhancedrc-history": "歷史",
        "uploadbtn": "上傳檔案",
        "reuploaddesc": "取消上傳並返回上傳表單",
        "upload-tryagain": "送出修改後的檔案描述",
-       "uploadnologin": "未登入",
+       "uploadnologin": "未登入",
        "uploadnologintext": "您必須先 $1 才能上傳檔案。",
        "upload_directory_missing": "缺少上傳目錄 ($1) 且網頁伺服器沒有權限建立。",
        "upload_directory_read_only": "網頁伺服器沒有上傳目錄 ($1) 的寫入權限。",
        "uploadlogpage": "上傳日誌",
        "uploadlogpagetext": "以下清單為最近上傳的檔案。\n請檢視 [[Special:NewFiles|最新檔案圖庫]] 以視覺化的方式檢視。",
        "filename": "檔案名稱",
-       "filedesc": "æª\94æ¡\88æ\91\98è¦\81",
-       "fileuploadsummary": "æª\94æ¡\88æ\91\98è¦\81ï¼\9a",
+       "filedesc": "摘要",
+       "fileuploadsummary": "摘要:",
        "filereuploadsummary": "檔案變更:",
        "filestatus": "版權狀態:",
        "filesource": "來源:",
        "watchthisupload": "監視此檔案",
        "filewasdeleted": "先前已有同樣名稱的檔案上傳,後來被刪除。\n您應在上傳此檔案前檢查 $1。",
        "filename-bad-prefix": "您上傳的檔案名稱以 <strong>\"$1\"</strong> 開頭,是不具任何描述意義的名稱,通常由數位相機自動產生。\n請替您的檔案使用一個更具描述意義的名稱。",
-       "upload-success-subj": "上傳成功",
+       "upload-success-subj": "成功上傳",
        "upload-success-msg": "您已成功使用 [$2] 上傳檔案,可於此處取得檔案:[[:{{ns:file}}:$1]]",
        "upload-failure-subj": "上傳問題",
        "upload-failure-msg": "您使用 [$2] 上傳的檔案發生問題:\n\n$1",
        "licenses-edit": "編輯授權條款選項",
        "license-nopreview": "(不可預覽)",
        "upload_source_url": "(您選擇的檔案來自有效,可公開存取的 URL)",
-       "upload_source_file": "(在您電腦上您選擇的檔案)",
+       "upload_source_file": "(您在您的電腦上選擇的檔案)",
        "listfiles-delete": "刪除",
-       "listfiles-summary": "此特殊頁面顯示所有上傳過的檔案。",
+       "listfiles-summary": "此特殊頁面顯示所有已上傳的檔案。",
        "listfiles_search_for": "搜尋媒體名稱:",
        "imgfile": "檔案",
        "listfiles": "檔案列表",
        "listfiles_thumb": "縮圖",
        "listfiles_date": "日期",
        "listfiles_name": "名稱",
-       "listfiles_user": "用戶",
+       "listfiles_user": "使用者",
        "listfiles_size": "大小",
        "listfiles_description": "描述",
        "listfiles_count": "版本",
        "filehist-thumb": "縮圖",
        "filehist-thumbtext": "於 $1 版本的縮圖",
        "filehist-nothumb": "沒有縮圖",
-       "filehist-user": "用戶",
+       "filehist-user": "使用者",
        "filehist-dimensions": "尺寸",
        "filehist-filesize": "檔案大小",
-       "filehist-comment": "註解",
+       "filehist-comment": "備註",
        "imagelinks": "檔案用途",
        "linkstoimage": "下列 {{PLURAL:$1|頁面連結|$1 個頁面連結}}到此檔案:",
        "linkstoimage-more": "超過$1個{{PLURAL:$1|頁面連結|頁面連結}}到這個檔案。\n此處只列出{{PLURAL:$1|首個連結|首$1個連結}}到此檔案的頁面。\n您也可以檢視[[Special:WhatLinksHere/$2|完整的清單]]。",
        "download": "下載",
        "unwatchedpages": "未監視的頁面",
        "listredirects": "重新導向頁面清單",
-       "listduplicatedfiles": "重複檔案列表",
-       "listduplicatedfiles-summary": "以下列表中某檔案之最新版本與其他檔案之最新版本重複。進包含本地檔案",
+       "listduplicatedfiles": "重複檔案清單",
+       "listduplicatedfiles-summary": "此清單中包含最新版本的檔案與其他檔案重複的清單,本清單只顯示本地檔案。",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] 有[[$3|其他 $2 個重複檔案]]。",
        "unusedtemplates": "未使用的樣版",
        "unusedtemplatestext": "此頁面列出所有於 {{ns:template}} 命名空間下未被其他頁面引用的樣版。\n在刪除前,仍需檢查是否有連結這些樣版的其他頁面。",
        "unusedtemplateswlh": "其他連結",
        "randompage": "隨機頁面",
        "randompage-nopages": "在{{PLURAL:$2|命名空間}}中沒有任何頁面:$1。",
-       "randomincategory": "分類中的隨機頁面",
+       "randomincategory": "隨機分類頁面",
        "randomincategory-invalidcategory": "\"$1\" 不是一個有效的分類名稱。",
-       "randomincategory-nopages": "[[:Category:$1]]中沒有頁面。",
-       "randomincategory-selectcategory": "å¾\9eå\88\86é¡\9e中ç\8d²å\8f\96é\9a¨æ©\9fé \81é\9d¢ï¼\9a$1 $2",
+       "randomincategory-nopages": "[[:Category:$1]] 中沒有任何頁面。",
+       "randomincategory-selectcategory": "å\8f\96å¾\97é\9a¨æ©\9fé \81é\9d¢æ\96¼å\88\86é¡\9eï¼\9a$1 $2ã\80\82",
        "randomincategory-selectcategory-submit": "執行",
        "randomredirect": "隨機重新導向",
        "randomredirect-nopages": "在命名空間 \"$1\" 中沒有任何重新導向頁面。",
        "statistics-articles": "內容頁面",
        "statistics-pages": "頁面",
        "statistics-pages-desc": "在 Wiki 上所有的頁面,包括對話頁面、重新導向頁面等。",
-       "statistics-files": "已上傳的檔案",
+       "statistics-files": "已上傳的檔案",
        "statistics-edits": "自 {{SITENAME}} 成立以來的頁面編輯數",
        "statistics-edits-average": "每頁平均編輯數",
        "statistics-views-total": "檢視總數",
-       "statistics-views-total-desc": "ä¸\8då­\98å\9c¨é \81é\9d¢å\92\8cç\89¹æ®\8aé \81é\9d¢ç\9a\84æ\9f¥ç\9c\8bæ\95¸æ\9cªè¨\88å\85¥",
+       "statistics-views-total-desc": "ä¸\8då\8c\85å\90«ä¸\8då­\98å\9c¨é \81é\9d¢è\88\87ç\89¹æ®\8aé \81é\9d¢ç\9a\84檢è¦\96æ\95¸",
        "statistics-views-peredit": "每次編輯檢視數",
-       "statistics-users": "已註冊的 [[Special:ListUsers|用戶]]",
+       "statistics-users": "已註冊的 [[Special:ListUsers|使用者]]",
        "statistics-users-active": "活動使用者",
        "statistics-users-active-desc": "在最近 $1 天操作過的使用者",
-       "statistics-mostpopular": "被查閱次數最多的頁面",
+       "statistics-mostpopular": "檢視最多次的頁面",
        "pageswithprop": "擁有屬性的頁面",
-       "pageswithprop-legend": "有頁面屬性的頁面",
+       "pageswithprop-legend": "æ\93\81æ\9c\89é \81é\9d¢å±¬æ\80§ç\9a\84é \81é\9d¢",
        "pageswithprop-text": "此頁面用來查詢使用了指定屬性的頁面。",
        "pageswithprop-prop": "屬性名稱:",
        "pageswithprop-submit": "執行",
        "specialpage-empty": "此報表無查無任何結果。",
        "lonelypages": "孤立頁面",
        "lonelypagestext": "下列頁面尚未被 {{SITENAME}} 中的其它頁面連結或引用。",
-       "uncategorizedpages": "待分類頁面",
-       "uncategorizedcategories": "待分類類別",
-       "uncategorizedimages": "待分類檔案",
+       "uncategorizedpages": "未分類的頁面",
+       "uncategorizedcategories": "未分類的分類",
+       "uncategorizedimages": "未分類的檔案",
        "uncategorizedtemplates": "待分類樣版",
        "unusedcategories": "未使用的分類",
        "unusedimages": "未使用的檔案",
-       "popularpages": "ç\86±é»\9e頁面",
+       "popularpages": "ç\86±é\96\80頁面",
        "wantedcategories": "需要的分類",
        "wantedpages": "需要的頁面",
-       "wantedpages-badtitle": "在結果組上的無效標題: $1",
+       "wantedpages-badtitle": "結果集合中的標題無效:$1",
        "wantedfiles": "需要的檔案",
        "wantedfiletext-cat": "以下檔案被使用,但不存在。外部儲存庫的檔案儘管現有,但可能會在此列出,任何此類的誤報將被<del>剔除</del>。此外,內嵌了不存在的檔案的網頁將在[[:$1]]列出。",
        "wantedfiletext-cat-noforeign": "下列檔案已被使用但不存在。 除此之外,頁面已內嵌但不存在的檔案列於 [[:$1]]。",
        "wantedfiletext-nocat": "以下檔案被使用,但不存在。外部儲存庫的文件儘管現有,但可能會在此列出,任何此類的誤報將被<del>剔除</del>。",
        "wantedfiletext-nocat-noforeign": "下列檔案已被使用但不存在。",
        "wantedtemplates": "需要的樣版",
-       "mostlinked": "最多連結頁面",
-       "mostlinkedcategories": "最多連結分類",
+       "mostlinked": "被連結最多的頁面",
+       "mostlinkedcategories": "被連結最多的分類",
        "mostlinkedtemplates": "被引用最多的頁面",
-       "mostcategories": "最多分類頁面",
-       "mostimages": "最多連結檔案",
+       "mostcategories": "最多分類頁面",
+       "mostimages": "被連結最多的檔案",
        "mostinterwikis": "最多 Interwiki 連結的頁面",
-       "mostrevisions": "最多修訂頁面",
+       "mostrevisions": "最多修訂頁面",
        "prefixindex": "所有頁面與字首",
        "prefixindex-namespace": "所有含字首的頁面 ($1 命名空間)",
        "prefixindex-strip": "於清單中省略字首",
        "protectedpages-summary": "此頁面列出目前受保護的頁面。 欲查詢受保護標題清單,請參考 [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]。",
        "protectedpages-cascade": "只顯示連鎖的保護頁面",
        "protectedpages-noredirect": "隱藏重新導向頁面",
-       "protectedpagesempty": "在這些參數下沒有頁面正在保護。",
+       "protectedpagesempty": "目前沒有使用這些參數的受保護頁面。",
        "protectedpages-timestamp": "日期時間",
        "protectedpages-page": "頁面",
        "protectedpages-expiry": "期限",
-       "protectedpages-performer": "保護用戶",
+       "protectedpages-performer": "保護使用者",
        "protectedpages-params": "保護參數",
        "protectedpages-reason": "原因",
        "protectedpages-unknown-timestamp": "未知",
-       "protectedpages-unknown-performer": "不明的用戶",
+       "protectedpages-unknown-performer": "不明的使用者",
        "protectedtitles": "受保護標題",
        "protectedtitles-summary": "此頁面列出目前受保護的標題。 欲查詢受保護頁面清單,請參考 [[{{#special:ProtectedPages}}|{{int:protectedpages}}]]。",
-       "protectedtitlesempty": "在這些參數之下並無標題正在保護。",
-       "listusers": "用戶清單",
+       "protectedtitlesempty": "目前沒有使用這些參數的受保護標題。",
+       "listusers": "使用者清單",
        "listusers-editsonly": "只顯示有編輯的使用者",
        "listusers-creationsort": "依建立日期排序",
        "listusers-desc": "使用降冪排序",
        "usereditcount": "$1 次{{PLURAL:$1|編輯}}",
        "usercreated": "於 $1 $2 {{GENDER:$3|建立}}",
        "newpages": "最新頁面",
-       "newpages-username": "用戶名:",
+       "newpages-username": "使用者名稱:",
        "ancientpages": "最舊頁面",
        "move": "移動",
-       "movethispage": "移å\8b\95æ\9c¬é \81",
+       "movethispage": "移å\8b\95æ­¤é \81é\9d¢",
        "unusedimagestext": "下列為未被任何頁面使用的檔案。\n請注意,其它網站可能直接透過 URL 連結至檔案,所以這裡列出的檔案仍有可能被使用。",
        "unusedcategoriestext": "下列分類沒有被其它頁面或者分類所使用。",
        "notargettitle": "無目標",
        "notargettext": "您尚未指定目標頁面或使用者以進行此項操作。",
-       "nopagetitle": "目標頁面",
+       "nopagetitle": "沒有此目標頁面",
        "nopagetext": "您所指定的目標頁面並不存在。",
        "pager-newer-n": "較新 $1 筆",
        "pager-older-n": "較舊 $1 筆",
        "booksources-go": "執行",
        "booksources-text": "以下是一份銷售新書或二手書的列表,並可能有{{GENDER:|你|妳|你}}正尋找的書的進一步訊息:",
        "booksources-invalid-isbn": "提供的ISBN號碼並不正確,請檢查原始複製來源號碼是否有誤。",
-       "specialloguserlabel": "操作者:",
+       "specialloguserlabel": "執行者:",
        "speciallogtitlelabel": "目標 (標題或使用者):",
        "log": "日誌",
        "all-logs-page": "所有公開日誌",
        "allpages": "所有頁面",
        "nextpage": "下一頁 ($1)",
        "prevpage": "上一頁 ($1)",
-       "allpagesfrom": "顯示從此處開始的頁面:",
-       "allpagesto": "顯示從此處結束的頁面:",
+       "allpagesfrom": "顯示頁面開始於:",
+       "allpagesto": "顯示頁面結束於:",
        "allarticles": "所有頁面",
        "allinnamespace": "所有頁面 ($1 命名空間)",
        "allpagessubmit": "執行",
        "allpagesbadtitle": "指定的頁面標題無效、包含內部語言或內部 Wiki 的字首。\n它可能包含一個或多個的不能用於標題的字元。",
        "allpages-bad-ns": "{{SITENAME}} 沒有 \"$1\" 命名空間。",
        "allpages-hide-redirects": "隱藏重新導向頁面",
-       "cachedspecial-viewing-cached-ttl": "你正在瀏覽本頁的緩存版本,至多可能存在$1的延遲。",
-       "cachedspecial-viewing-cached-ts": "您正在閱讀此頁的緩存版本,這可能不是完整的版本。",
-       "cachedspecial-refresh-now": "檢視最新。",
-       "categories": "頁面分類",
+       "cachedspecial-viewing-cached-ttl": "你正在檢視此頁面的快取版本,最多會有 $1 的延遲。",
+       "cachedspecial-viewing-cached-ts": "你正在檢視此頁面的快取版本,可能不完全與實際相同。",
+       "cachedspecial-refresh-now": "檢視最新版本。",
+       "categories": "分類",
        "categoriespagetext": "下列為包含頁面或媒體的{{PLURAL:$1|分類}}。\n[[Special:UnusedCategories|未使用的分類]] 不會在此顯示。\n請參考 [[Special:WantedCategories|需要的分類]]。",
-       "categoriesfrom": "顯示由此項起之分類:",
-       "special-categories-sort-count": "數量排列",
-       "special-categories-sort-abc": "字母排列",
+       "categoriesfrom": "顯示分類開始於:",
+       "special-categories-sort-count": "數量排列",
+       "special-categories-sort-abc": "字母排列",
        "deletedcontributions": "已刪除的使用者貢獻",
        "deletedcontributions-title": "已刪除的使用者貢獻",
        "sp-deletedcontributions-contribs": "貢獻",
        "linksearch-error": "萬用字元僅可在主機名稱的開頭使用。",
        "listusersfrom": "顯示使用者開始自:",
        "listusers-submit": "顯示",
-       "listusers-noresult": "查無用戶。",
+       "listusers-noresult": "查無使用者。",
        "listusers-blocked": "(已封鎖)",
        "activeusers": "活動的使用者清單",
        "activeusers-intro": "此清單為最近 $1 天有活動的使用者。",
        "activeusers-count": "最近 $3 天內有 $1 次動作",
-       "activeusers-from": "顯示用戶開始自:",
+       "activeusers-from": "顯示使用者開始自:",
        "activeusers-hidebots": "隱藏機器人",
        "activeusers-hidesysops": "隱藏管理員",
-       "activeusers-noresult": "查無用戶。",
-       "listgrouprights": "用戶群組權限",
+       "activeusers-noresult": "查無使用者。",
+       "listgrouprights": "使用者群組權限",
        "listgrouprights-summary": "以下為此 Wiki 的使用者群組清單,以及相關的存取權限。\n您可以在 [[{{MediaWiki:Listgrouprights-helppage}}|詳細資訊]] 找到有關個別權限的資訊。",
        "listgrouprights-key": "說明:\n* <span class=\"listgrouprights-granted\">已授予的權限</span>\n* <span class=\"listgrouprights-revoked\">已撤銷的權限</span>",
        "listgrouprights-group": "群組",
        "listgrouprights-rights": "權限",
-       "listgrouprights-helppage": "Help:群組權限",
+       "listgrouprights-helppage": "Help:Group rights",
        "listgrouprights-members": "(成員清單)",
        "listgrouprights-addgroup": "加入的{{PLURAL:$2|一個|多個}}群組: $1",
        "listgrouprights-removegroup": "移除的{{PLURAL:$2|一個|多個}}群組: $1",
        "expensive-parserfunction-category-desc": "頁面使用太多消耗系統資源的分析器函數 (如 <code>#ifexist</code>)。\n請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit]。",
        "broken-file-category-desc": "頁面包含損壞的檔案連結 (內嵌檔案連結的檔案不存在時)",
        "hidden-category-category-desc": "該分類使用了 <code><nowiki>__HIDDENCAT__</nowiki></code>,可預設避免在頁面中顯示該分類的分類連結框。",
-       "trackingcategories-nodesc": "並無說明。",
-       "trackingcategories-disabled": "å\88\86é¡\9e被ç¦\81ç\94¨",
+       "trackingcategories-nodesc": "沒有可用的描述。",
+       "trackingcategories-disabled": "å·²å\81\9cç\94¨å\88\86é¡\9e",
        "mailnologin": "沒有傳送位址",
        "mailnologintext": "您必須先 [[Special:UserLogin|登入]]\n並在 [[Special:Preferences|偏好設定]]\n中設定一個有效的電子郵件位址才可以傳送信件給其他使用者。",
-       "emailuser": "Email此用戶",
+       "emailuser": "Email 此使用者",
        "emailuser-title-target": "Email 給此{{GENDER:$1|使用者}}",
-       "emailuser-title-notarget": "E-mail給使用者",
+       "emailuser-title-notarget": "E-mail 給使用者",
        "emailpage": "E-mail 給使用者",
        "emailpagetext": "您可以使用以下表格傳送電子郵件給這位 {{Gender:$1|使用者}}。\n您在 [[Special:Preferences|偏好設定]] 中所輸入的電子郵件位址將會作為郵件的 \"寄件人\",因此該使用者可直接回覆您。",
        "defemailsubject": "來自使用者 \"$1\" 於 {{SITENAME}} 寄來的電子郵件",
-       "usermaildisabled": "用戶電子郵件已停用",
+       "usermaildisabled": "使用者電子郵件已停用",
        "usermaildisabledtext": "您不可傳送信件到這個 Wiki 上的其他使用者",
        "noemailtitle": "沒有電子郵件位址",
        "noemailtext": "此使用者尚未指定一個有效的電子郵件位址。",
        "nowikiemailtext": "此使用者選擇不接收其他使用者的信件。",
        "emailnotarget": "收件人不存在或無效的使用者名稱。",
        "emailtarget": "輸入收件人使用者名稱",
-       "emailusername": "用戶名稱:",
+       "emailusername": "使用者名稱:",
        "emailusernamesubmit": "送出",
        "email-legend": "傳送電子郵件給另一位 {{SITENAME}} 使用者",
        "emailfrom": "寄件人:",
        "emailto": "收件人:",
-       "emailsubject": "主:",
+       "emailsubject": "主:",
        "emailmessage": "訊息:",
        "emailsend": "傳送",
        "emailccme": "傳送一份副本到我的電子郵件信箱。",
        "emailccsubject": "您寄給 $1 的訊息副本:$2",
-       "emailsent": "電子郵件已寄出",
-       "emailsenttext": "您的電子郵件訊息已經寄出。",
+       "emailsent": "已寄出電子郵件",
+       "emailsenttext": "已寄出您的電子郵件訊息。",
        "emailuserfooter": "這封電子郵件是由 $1 透過 {{SITENAME}} 的 \"Email 給此使用者\" 功能寄給 $2。",
        "usermessage-summary": "留給系統訊息。",
        "usermessage-editor": "系統訊息",
        "unwatching": "正在停止監視...",
        "watcherrortext": "變更 \"$1\" 的監視清單設定時發生錯誤。",
        "enotif_reset": "標記所有頁面為已檢視",
-       "enotif_impersonal_salutation": "{{SITENAME}} 用戶",
+       "enotif_impersonal_salutation": "{{SITENAME}} 使用者",
        "enotif_subject_deleted": "{{SITENAME}} $2 已刪除頁面 $1",
        "enotif_subject_created": "{{SITENAME}} $2 已建立頁面 $1",
        "enotif_subject_moved": "{{SITENAME}} $2 已移動頁面 $1",
        "reverted": "還原到較早的版本",
        "deletecomment": "原因:",
        "deleteotherreason": "其它/額外的原因:",
-       "deletereasonotherlist": "其它理由",
+       "deletereasonotherlist": "其它原因",
        "deletereason-dropdown": "* 常見的刪除原因\n** 濫發廣告訊息\n** 破壞\n** 侵犯版權\n** 作者請求\n** 損壞的重新導向連結",
-       "delete-edit-reasonlist": "編輯刪除理由",
+       "delete-edit-reasonlist": "編輯刪除原因",
        "delete-toobig": "這個頁面有一個十分大量的編輯歷史,超過$1次修訂。刪除此類頁面的動作已經被限制,以防止在{{SITENAME}}上的意外擾亂。",
        "delete-warning-toobig": "這個頁面有一個十分大量的編輯歷史,超過$1次修訂。刪除它可能會擾亂{{SITENAME}}的資料庫操作;在繼續此動作前請小心。",
+       "delete-cantedit": "您沒有權限編輯此頁面,您無法刪除。",
        "deleting-backlinks-warning": "<strong>警告:</strong>您正要刪除的頁面有[[Special:WhatLinksHere/{{FULLPAGENAME}}|其他頁面]]連結或引用。",
        "rollback": "還原編輯",
        "rollback_short": "還原",
        "rollbackfailed": "還原失敗",
        "cantrollback": "無法還原編輯;\n此頁面的最後貢獻者是唯一的作者。",
        "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''\"。",
+       "editcomment": "編輯摘要為:\"''$1''\"。",
        "revertpage": "已還原 [[Special:Contributions/$2|$2]] ([[User talk:$2|對話]]) 的編輯為最後由 [[User:$1|$1]] 所修訂的版本",
        "revertpage-nouser": "已還隱藏使用者的編輯為最後 {{GENDER:$1|[[User:$1|$1]]}} 修訂的版本",
        "rollback-success": "已還原 $1 做的編輯;\n更變回最後由 $2 修訂的版本。",
-       "sessionfailure-title": "登入資訊失敗",
+       "sessionfailure-title": "連線階段失敗",
        "sessionfailure": "似乎您的登入會話有問題;\n為了防止會話劫持,這個操作已經被取消。\n請返回先前的頁面,重新載入該頁面,然後重試。",
        "protectlogpage": "保護日誌",
        "protectlogtext": "以下為變更頁面保護的列表。\n請參考 [[Special:ProtectedPages|受保護頁面列表]] 檢視目前受保護頁面。",
        "protect-locked-dblock": "資料庫被鎖定,無法更改保護層級。\n以下為頁面 <strong>$1</strong> 目前的設定:",
        "protect-locked-access": "您的帳號沒有權限更改保護層級。\n以下為頁面 <strong>$1</strong> 目前的設定:",
        "protect-cascadeon": "此頁面目前受保護,因頁面被下列啟動連鎖保護的 $1 個頁面引用。\n更改此頁面的保護層級不會影響連鎖保護的作用。",
-       "protect-default": "允許所有用戶",
+       "protect-default": "允許所有使用者",
        "protect-fallback": "僅允許有 \"$1\" 權限的使用者",
        "protect-level-autoconfirmed": "僅允許已自動確認的使用者",
        "protect-level-sysop": "僅允許管理員",
        "protect-othertime-op": "其它時間",
        "protect-existing-expiry": "已設定期限:$2 $3",
        "protect-otherreason": "其它/額外的原因:",
-       "protect-otherreason-op": "其它理由",
+       "protect-otherreason-op": "其它原因",
        "protect-dropdown": "*常見的保護原因\n** 過度的破壞\n** 過多垃圾訊息\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-upload": "上傳",
        "restriction-level-sysop": "全保護",
        "restriction-level-autoconfirmed": "半保護",
-       "restriction-level-all": "任何級別",
+       "restriction-level-all": "任何層級",
        "undelete": "檢視已刪除的頁面",
        "undeletepage": "檢視與還原已刪除的頁面",
        "undeletepagetitle": "'''以下包含[[:$1]]的已刪除之修訂版本'''。",
-       "viewdeletedpage": "檢視已刪除頁面",
+       "viewdeletedpage": "檢視已刪除頁面",
        "undeletepagetext": "以下的$1個頁面已經被刪除,但依然在檔案中並可以被恢復。\n檔案庫可能被定時清理。",
        "undelete-fieldset-title": "還原修訂",
        "undeleteextrahelp": "若要還原所有的頁面歷史,請取消勾選所有核選方塊並點選 <strong><em>{{int:undeletebtn}}</em></strong>。\n若要還原指定的頁面歷史,請勾選要還原的修訂核選方塊並點選 <strong><em>{{int:undeletebtn}}</em></strong>。",
        "namespace_association": "相關命名空間",
        "tooltip-namespace_association": "勾選此核選方塊以包含與選擇命名空間相關的對話或主題命名空間",
        "blanknamespace": "(主要)",
-       "contributions": "{{GENDER:$1|用戶}}貢獻",
-       "contributions-title": "$1 的用戶貢獻",
+       "contributions": "{{GENDER:$1|使用者}}貢獻",
+       "contributions-title": "$1 的使用者貢獻",
        "mycontris": "我的貢獻",
        "contribsub2": "{{GENDER:$3|$1}} 的貢獻 ($2)",
-       "contributions-userdoesnotexist": "用戶帳號 \"$1\" 尚未註冊。",
+       "contributions-userdoesnotexist": "使用者帳號 \"$1\" 尚未註冊。",
        "nocontribs": "沒有找到符合特徵的更改。",
        "uctop": "(目前)",
        "month": "截止月份:",
        "sp-contributions-newbies-title": "新帳號的使用者貢獻",
        "sp-contributions-blocklog": "封鎖記錄",
        "sp-contributions-suppresslog": "已禁止顯示的使用者貢獻",
-       "sp-contributions-deleted": "已刪除的用戶貢獻",
+       "sp-contributions-deleted": "已刪除的使用者貢獻",
        "sp-contributions-uploads": "上傳",
        "sp-contributions-logs": "日誌",
        "sp-contributions-talk": "對話",
-       "sp-contributions-userrights": "用戶權限管理",
+       "sp-contributions-userrights": "使用者權限管理",
        "sp-contributions-blocked-notice": "此使用者目前已被封鎖。\n以下為最近的封鎖紀錄以供參考:",
        "sp-contributions-blocked-notice-anon": "此 IP 位址目前已被封鎖。\n以下為最近的封鎖紀錄以供參考:",
        "sp-contributions-search": "搜尋貢獻記錄",
        "whatlinkshere-hidelinks": "$1 連結",
        "whatlinkshere-hideimages": "$1 檔案連結",
        "whatlinkshere-filters": "搜尋",
-       "autoblockid": "自動查封 #$1",
+       "autoblockid": "自動封鎖 #$1",
        "block": "封鎖使用者",
-       "unblock": "解除封鎖用戶",
-       "blockip": "封鎖{{GENDER:$1|用戶}}",
-       "blockip-legend": "封鎖用戶",
+       "unblock": "解除封鎖使用者",
+       "blockip": "封鎖{{GENDER:$1|使用者}}",
+       "blockip-legend": "封鎖使用者",
        "blockiptext": "填寫以下單據可封鎖特定 IP 位址或使用者名稱的存取權限。\n這個動作應用來避免破壞行為,可根據 [[{{MediaWiki:Policy-url}}|管理政策]]。\n請在下方填寫一個具體的原因 (例如:引述一段破壞頁面的事實)。",
        "ipaddressorusername": "IP 位址或使用者名稱:",
        "ipbexpiry": "期限:",
        "ipbcreateaccount": "禁止建立帳號",
        "ipbemailban": "禁止使用者傳送電子郵件",
        "ipbenableautoblock": "自動封鎖此使用者最後使用的 IP 位址,以及所有之後嘗試編輯使用的 IP 位址",
-       "ipbsubmit": "封禁該用戶",
-       "ipbother": "其它時間:",
+       "ipbsubmit": "封鎖此使用者",
+       "ipbother": "其他時間:",
        "ipboptions": "2小時:2 hours,1天:1 day,3天:3 days,1周:1 week,2周:2 weeks,1個月:1 month,3個月:3 months,6個月:6 months,1年:1 year,無限期:infinite",
        "ipbhidename": "在編輯及清單中隱藏使用者名稱",
-       "ipbwatchuser": "監視這位用戶的用戶頁以及其對話頁面",
+       "ipbwatchuser": "監視這位使用者的使用者頁面及其對話頁面",
        "ipb-disableusertalk": "避免在封鎖此使用者的期間編輯自己的對話頁面",
-       "ipb-change-block": "使用現有設定重新封鎖用戶",
+       "ipb-change-block": "使用現有設定重新封鎖使用者",
        "ipb-confirm": "確認封鎖",
        "badipaddress": "無效的 IP 位址",
        "blockipsuccesssub": "封鎖成功",
        "ipb-unblock": "解除封鎖使用者名稱或 IP 位址",
        "ipb-blocklist": "檢視目前的封鎖",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} 的貢獻",
-       "unblockip": "解除封鎖用戶",
+       "unblockip": "解除封鎖使用者",
        "unblockiptext": "填寫以下單據以取消先前封鎖的 IP 位址或使用者名稱。",
        "ipusubmit": "移除這個封鎖",
        "unblocked": "[[User:$1|$1]] 的封鎖已經解除。",
-       "unblocked-range": "$1已被解封",
+       "unblocked-range": "已解除封鎖 $1。",
        "unblocked-id": "已經移除 $1 的封鎖。",
-       "blocklist": "已封鎖的用戶",
-       "ipblocklist": "已封鎖的用戶",
+       "blocklist": "已封鎖的使用者",
+       "ipblocklist": "已封鎖的使用者",
        "ipblocklist-legend": "搜尋已封鎖的使用者",
        "blocklist-userblocks": "隱藏帳號封鎖",
        "blocklist-tempblocks": "隱藏暫時封鎖",
        "blocklist-nousertalk": "無法編輯自己的對話頁面",
        "ipblocklist-empty": "封鎖清單無任何資訊。",
        "ipblocklist-no-results": "指定的 IP 位址或使用者名稱尚未被封鎖。",
-       "blocklink": "查封",
+       "blocklink": "封鎖",
        "unblocklink": "解除封鎖",
        "change-blocklink": "變更封鎖",
        "contribslink": "貢獻",
        "emaillink": "傳送電子郵件",
        "autoblocker": "您的 IP 位址因最近被 [[User:$1|$1]] 使用過而被自動封鎖。\n封鎖 $1 的原因為 \"$2\"",
-       "blocklogpage": "查封日誌",
+       "blocklogpage": "封鎖日誌",
        "blocklog-showlog": "此使用者先前被封鎖過。\n以下為封鎖紀錄以供參考:",
        "blocklog-showsuppresslog": "此使用者先前被封鎖並且隱藏過。\n以下為禁止顯示紀錄以供參考:",
        "blocklogentry": "已封鎖 [[$1]] 的期限至 $2 $3",
        "reblock-logentry": "更改 [[$1]] 的封鎖期限至 $2 $3",
        "blocklogtext": "此為使用者的封鎖及取消封鎖記錄。\n不包自動封鎖的 IP 位址。\n請參考 [[Special:BlockList|封鎖清單]] 以檢視目前的封鎖。",
-       "unblocklogentry": "已解 $1",
-       "block-log-flags-anononly": "僅限匿名用戶",
+       "unblocklogentry": "已解除封鎖 $1",
+       "block-log-flags-anononly": "僅限匿名使用者",
        "block-log-flags-nocreate": "停用帳號建立",
        "block-log-flags-noautoblock": "停用自動封鎖",
        "block-log-flags-noemail": "停用電子郵件",
        "block-log-flags-nousertalk": "無法編輯自己的對話頁面",
        "block-log-flags-angry-autoblock": "加強自動封鎖已開啟",
-       "block-log-flags-hiddenname": "隱藏用戶名",
+       "block-log-flags-hiddenname": "隱藏使用者名稱",
        "range_block_disabled": "管理員可建立範圍封鎖的權限以被關閉。",
        "ipb_expiry_invalid": "無效的終止時間。",
        "ipb_expiry_temp": "隱藏使用者名稱的封鎖不可設定期限。",
        "ipb_hide_invalid": "無法禁止顯示此帳號;它擁有超過 $1 次的編輯。",
        "ipb_already_blocked": "已經封鎖 \"$1\"。",
-       "ipb-needreblock": "$1已經被封鎖。您是否想更改這個設定?",
+       "ipb-needreblock": "$1 已經被封鎖。您是否想更改設定?",
        "ipb-otherblocks-header": "其他{{PLURAL:$1|封鎖}}",
        "unblock-hideuser": "由於此使用者名稱已被設為隱藏,您無法解除封鎖這個使用者。",
        "ipb_cant_unblock": "錯誤:查無封鎖 ID $1,可能已被解除封鎖。",
        "movenologintext": "您必須是已註冊的使用者並且 [[Special:UserLogin|登入]] 才可移動頁面。",
        "movenotallowed": "您沒有權限移動頁面。",
        "movenotallowedfile": "您沒有權限移動檔案。",
-       "cant-move-user-page": "您沒有權限移動用戶頁 (除用戶頁子頁面外)。",
-       "cant-move-to-user-page": "您沒有權限移動頁面至用戶頁 (除用戶頁子頁面外)。",
+       "cant-move-user-page": "您沒有權限移動使用者頁面 (子頁面除外)。",
+       "cant-move-to-user-page": "您沒有權限移動頁面至使用者頁面 (除使用者子頁面外)。",
        "cant-move-category-page": "您沒有權限移動分類頁面。",
        "cant-move-to-category-page": "您沒有權限移動頁面至分類頁面。",
        "newtitle": "新標題:",
        "move-watch": "監視來源以及目標頁面",
        "movepagebtn": "移動頁面",
-       "pagemovedsub": "移動成功",
+       "pagemovedsub": "已成功移動",
        "movepage-moved": "<strong>已移動 \"$1\" 至 \"$2\"</strong>",
        "movepage-moved-redirect": "已建立重新導向頁面。",
        "movepage-moved-noredirect": "已禁止建立重新導向頁面。",
        "importtext": "請使用 [[Special:Export|匯出工具]] 從來源 Wiki 匯出檔案,\n儲存至您的電腦後再上傳到這裡。",
        "importstart": "正在匯入頁面...",
        "import-revision-count": "$1 個修訂",
-       "importnopages": "沒有匯入的頁面。",
+       "importnopages": "æ²\92æ\9c\89å\8f¯å\8c¯å\85¥ç\9a\84é \81é\9d¢ã\80\82",
        "imported-log-entries": "已匯入 $1 筆日誌項目。",
        "importfailed": "匯入失敗:<nowiki>$1</nowiki>",
        "importunknownsource": "不明的來源匯入類型",
        "importcantopen": "無法開啟匯入檔案",
        "importbadinterwiki": "無效的 Interwiki 連結",
-       "importsuccess": "å\8c¯å\85¥å®\8cæ\88\90!",
+       "importsuccess": "å·²å®\8cæ\88\90å\8c¯å\85¥!",
        "importnosources": "未定義任何 Transwiki 匯入來源且已關閉使用歷史記錄上傳功能。",
        "importnofile": "未上傳匯入檔案。",
        "importuploaderrorsize": "上載匯入檔案失敗。\n檔案大小超過允許上傳大小。",
        "import-error-create": "您沒有權限建立頁面 \"$1\",無法匯入。",
        "import-error-interwiki": "頁面 \"$1\" 的名稱已保留作為外部連結 (Interwiki) 使用,無法匯入。",
        "import-error-special": "頁面 \"$1\" 屬於不允許頁面的特殊命名空間,無法匯入。",
-       "import-error-invalid": "é \81é\9d¢ \"$1\" å\9b å\85¶å\90\8d稱å\9c¨æ­¤wiki無效,無法匯入。",
+       "import-error-invalid": "é \81é\9d¢ \"$1\" å\8c¯å\85¥æ­¤ Wiki ç\9a\84å\90\8d稱無效,無法匯入。",
        "import-error-unserialize": "頁面 \"$1\" 的修訂 $2 無法反序列反。 此修訂使用 $3 內容模型以 $4 的方式序列化。",
        "import-error-bad-location": "此 Wiki 的頁面 \"$1\" 不支援使用內容模型 $3,修訂 $2 無法儲存至該頁面 。",
        "import-options-wrong": "{{PLURAL:$2|選項}}錯誤:<nowiki>$1</nowiki>",
        "javascripttest-pagetext-skins": "選擇執行測試的外觀:",
        "javascripttest-qunit-intro": "請參考 mediawiki.org 的 [$1 測試說明文件]。",
        "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit 測試工具",
-       "tooltip-pt-userpage": "您的用戶頁",
+       "tooltip-pt-userpage": "您的使用者頁面",
        "tooltip-pt-anonuserpage": "您編輯使用的 IP 位址所對應的使用者頁面",
        "tooltip-pt-mytalk": "您的對話頁面",
        "tooltip-pt-anontalk": "對於來自此 IP 位址編輯的對話",
        "tooltip-t-print": "此頁面的可列印版本",
        "tooltip-t-permalink": "此頁面修訂的固定連結",
        "tooltip-ca-nstab-main": "檢視頁面內容",
-       "tooltip-ca-nstab-user": "檢視用戶頁",
+       "tooltip-ca-nstab-user": "檢視使用者頁面",
        "tooltip-ca-nstab-media": "檢視媒體頁面",
        "tooltip-ca-nstab-special": "此頁面為特殊頁面,無法編輯",
        "tooltip-ca-nstab-project": "檢視專案頁面",
        "tooltip-ca-nstab-image": "檢視檔案頁面",
-       "tooltip-ca-nstab-mediawiki": "檢è¦\96系統è³\87è¨\8a",
+       "tooltip-ca-nstab-mediawiki": "檢è¦\96系統è¨\8aæ\81¯",
        "tooltip-ca-nstab-template": "檢視樣版",
        "tooltip-ca-nstab-help": "檢視說明頁面",
        "tooltip-ca-nstab-category": "檢視分類頁面",
        "group-bot.css": "/* 此 CSS 會影響機器人 */",
        "group-sysop.css": "/* 此 CSS 會影響管理員 */",
        "group-bureaucrat.css": "/* 此 CSS 會影響行政員 */",
-       "common.js": "/* 此 JavaScript 會用於用戶載入的每一個頁面。 */",
+       "common.js": "/* 此 JavaScript 會用於使用者載入的每一個頁面。 */",
        "anonymous": "{{SITENAME}} 的匿名{{PLURAL:$1|使用者}}",
-       "siteuser": "{{SITENAME}} 用戶 $1",
-       "anonuser": "{{SITENAME}} 匿名用戶 $1",
+       "siteuser": "{{SITENAME}} 使用者 $1",
+       "anonuser": "{{SITENAME}} 匿名使用者 $1",
        "lastmodifiedatby": "此頁由 $3 於 $1 $2 的最後更改。",
        "othercontribs": "此頁面由 $1 所貢獻。",
        "others": "其他",
-       "siteusers": "{{SITENAME}} {{PLURAL:$2|用戶}} $1",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|使用者}} $1",
        "anonusers": "{{SITENAME}} 匿名{{PLURAL:$2|使用者}} $1",
        "creditspage": "頁面製作群",
        "nocredits": "此頁面沒有製作群資訊。",
        "pageinfo-header-restrictions": "頁面保護",
        "pageinfo-header-properties": "頁面屬性",
        "pageinfo-display-title": "顯示標題",
-       "pageinfo-default-sort": "預設排序:",
+       "pageinfo-default-sort": "預設排序方式:",
        "pageinfo-length": "頁面長度 (位元組)",
-       "pageinfo-article-id": "頁面編號",
+       "pageinfo-article-id": "頁面 ID",
        "pageinfo-language": "頁面內容語言",
        "pageinfo-content-model": "頁面內容模型",
        "pageinfo-robot-policy": "由機器人建立索引",
        "pageinfo-watchers": "頁面監視者數",
        "pageinfo-few-watchers": "少於 $1 名監視者",
        "pageinfo-redirects-name": "指向此頁面的重新導向頁面數量",
-       "pageinfo-subpages-name": "此頁面的子頁面",
+       "pageinfo-subpages-name": "此頁面的子頁面",
        "pageinfo-subpages-value": "$1 ($2 個重新導向頁面; $3 個非重新導向頁面)",
        "pageinfo-firstuser": "頁面建立者",
        "pageinfo-firsttime": "頁面建立日期",
        "pageinfo-category-info": "分類資訊",
        "pageinfo-category-pages": "頁面數量",
        "pageinfo-category-subcats": "子分類數量",
-       "pageinfo-category-files": "編輯數量",
+       "pageinfo-category-files": "檔案數量",
        "markaspatrolleddiff": "標記為已巡查",
        "markaspatrolledtext": "標記此頁面為已巡查",
        "markedaspatrolled": "己標記為已巡查",
        "file-info": "檔案大小:$1,MIME 類型:$2",
        "file-info-size": "$1 × $2 像素,檔案大小:$3,MIME 類型:$4",
        "file-info-size-pages": "$1 × $2 像素,檔案大小:$3,MIME 類型:$4,$5 {{PLURAL:$5|頁}}",
-       "file-nohires": "無更高解度可提供。",
+       "file-nohires": "無更高解度可提供。",
        "svg-long-desc": "SVG 檔案,表面大小:$1 × $2 像素,檔案大小:$3",
        "svg-long-desc-animated": "SVG 動畫檔案,表面大小:$1 × $2 像素,檔案大小:$3",
        "svg-long-error": "無效的 SVG 檔案:$1",
        "exif-compressedbitsperpixel": "影像壓縮模式",
        "exif-pixelydimension": "圖片寬度",
        "exif-pixelxdimension": "圖片高度",
-       "exif-usercomment": "用戶評論",
+       "exif-usercomment": "使用者評論",
        "exif-relatedsoundfile": "相關的音效檔案",
        "exif-datetimeoriginal": "資料產生的日期時間",
        "exif-datetimedigitized": "數位化的日期時間",
        "exif-gpsaltituderef": "海拔參考值",
        "exif-gpsaltitude": "海拔",
        "exif-gpstimestamp": "GPS 時間 (原子鐘)",
-       "exif-gpssatellites": "測量使用的衛星",
+       "exif-gpssatellites": "測量用的衛星",
        "exif-gpsstatus": "接收器狀態",
        "exif-gpsmeasuremode": "測量模式",
        "exif-gpsdop": "測量精度",
        "exif-pngfilecomment": "PNG 檔案備註",
        "exif-disclaimer": "免責聲明",
        "exif-contentwarning": "內容警告",
-       "exif-giffilecomment": "GIF註釋",
+       "exif-giffilecomment": "GIF 檔案備註",
        "exif-intellectualgenre": "項目類型",
        "exif-subjectnewscode": "主題代碼",
        "exif-scenecode": "IPTC現場代碼",
        "exif-compression-6": "JPEG (舊)",
        "exif-copyrighted-true": "受版權保護",
        "exif-copyrighted-false": "版權所屬者不明",
-       "exif-unknowndate": "æ\9cªç\9f¥ç\9a\84æ\97¥æ\9c\9f",
+       "exif-unknowndate": "æ\97¥æ\9c\9fä¸\8dæ\98\8e",
        "exif-orientation-1": "標準",
        "exif-orientation-2": "水平翻轉",
        "exif-orientation-3": "旋轉 180°",
        "exif-exposureprogram-7": "人像模式 (用於近距離照片,對焦不在背景)",
        "exif-exposureprogram-8": "風景模式 (用於風景照片,對焦在背景)",
        "exif-subjectdistance-value": "$1 尺",
-       "exif-meteringmode-0": "未知",
+       "exif-meteringmode-0": "不明",
        "exif-meteringmode-1": "平均",
        "exif-meteringmode-2": "中心加權平均",
        "exif-meteringmode-3": "點測",
        "exif-meteringmode-5": "模式",
        "exif-meteringmode-6": "部分",
        "exif-meteringmode-255": "其他",
-       "exif-lightsource-0": "未知",
+       "exif-lightsource-0": "不明",
        "exif-lightsource-1": "日光",
        "exif-lightsource-2": "螢光燈",
        "exif-lightsource-3": "鎢絲燈 (白熾燈)",
        "exif-sensingmethod-5": "連續彩色區域傳感器",
        "exif-sensingmethod-7": "三線傳感器",
        "exif-sensingmethod-8": "連續彩色線性傳感器",
-       "exif-filesource-3": "數相機",
+       "exif-filesource-3": "數相機",
        "exif-scenetype-1": "直接照像圖片",
        "exif-customrendered-0": "標準處理",
        "exif-customrendered-1": "自定義處理",
        "exif-sharpness-0": "標準",
        "exif-sharpness-1": "低",
        "exif-sharpness-2": "高",
-       "exif-subjectdistancerange-0": "未知",
+       "exif-subjectdistancerange-0": "不明",
        "exif-subjectdistancerange-1": "巨集",
        "exif-subjectdistancerange-2": "近景",
        "exif-subjectdistancerange-3": "遠景",
        "exif-dc-rights": "權利",
        "exif-dc-source": "來源媒體",
        "exif-dc-type": "介質類型",
-       "exif-rating-rejected": "拒絕",
+       "exif-rating-rejected": "拒絕",
        "exif-isospeedratings-overflow": "大於 65535",
        "exif-iimcategory-ace": "藝術、文化與娛樂",
        "exif-iimcategory-clj": "犯罪與法律",
        "watchlistall2": "全部",
        "namespacesall": "全部",
        "monthsall": "全部",
-       "confirmemail": "確èª\8dé\83µç®±位址",
+       "confirmemail": "確èª\8dé\9b»å­\90é\83µä»¶位址",
        "confirmemail_noemail": "您尚未於 [[Special:Preferences|偏好設定]] 輸入一個有效的電子郵件位址。",
        "confirmemail_text": "{{SITENAME}}要求您在使用郵件功能之前驗證您的郵箱位址。\n點選以下按鈕可向您的郵箱傳送一封確認郵件。該郵件包含有一行代碼連結;\n請在您的瀏覽器中載入此連結以確認您的郵箱位址是有效的。",
        "confirmemail_pending": "確認碼已傳送至您的電子郵件,\n若您才剛建立好您的帳號,可能需要稍後幾分鐘才能收到。\n若沒有收到,請再重新申請一次確認碼。",
-       "confirmemail_send": "é\83µç\99¼確認代碼",
-       "confirmemail_sent": "確認郵件已寄出。",
+       "confirmemail_send": "é\9b»å­\90é\83µä»¶å¯\84é\80\81確認代碼",
+       "confirmemail_sent": "已寄出確認電子郵件。",
        "confirmemail_oncreate": "一個確認代碼已經被傳送到您的郵箱。該代碼並不要求您進行登入,\n但若您要啟用在此 wiki 上的任何基於電子郵件的功能,您必須先提交此代碼。",
        "confirmemail_sendfailed": "{{SITENAME}}無法傳送確認郵件,請檢查郵箱位址是否包含非法字元。\n\n郵件傳送員回應: $1",
        "confirmemail_invalid": "無效的確認碼,該代碼可能已經過期。",
-       "confirmemail_needlogin": "您需要$1以確認您的郵箱位址。",
+       "confirmemail_needlogin": "請 $1 以確認您的電子郵件地址。",
        "confirmemail_success": "您的郵箱已經被確認。您現在可以[[Special:UserLogin|登入]]並使用此網站了。",
-       "confirmemail_loggedin": "您的郵箱位址現下已被確認。",
-       "confirmemail_subject": "{{SITENAME}}郵箱位址確認",
+       "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": "電郵位址確認已取消",
-       "invalidateemail": "取消電確認",
+       "confirmemail_invalidated": "已取消電子郵件地址確認",
+       "invalidateemail": "取消電子郵件確認",
        "scarytranscludedisabled": "[Interwiki 轉換代碼不可用]",
        "scarytranscludefailed": "[樣版 $1 讀取失敗]",
        "scarytranscludefailed-httpstatus": "[樣版 $1 讀取失敗:HTTP $2]",
-       "scarytranscludetoolong": "[URL 網址太長]",
+       "scarytranscludetoolong": "[URL 長]",
        "deletedwhileediting": "<strong>警告:</strong>此頁在您開始編輯之後已經被刪除﹗",
        "confirmrecreate": "在您編輯的同時,使用者 [[User:$1|$1]] ([[User talk:$1|對話]]) 刪除了此頁面,原因為:\n: <em>$2</em>\n請確認您是否真的要重新建立此頁面。",
        "confirmrecreate-noreason": "在您編輯的同時,使用者 [[User:$1|$1]] ([[User talk:$1|對話]]) 刪除了此頁面,請確認您是否真的要重新建立此頁面。",
        "version-hook-name": "連結名稱",
        "version-hook-subscribedby": "署名",
        "version-version": "($1)",
-       "version-no-ext-name": "[名]",
+       "version-no-ext-name": "[未命名]",
        "version-license": "MediaWiki 授權條款",
        "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-description": "描述",
        "version-ext-colheader-credits": "作者",
        "version-license-title": "$1 的授權條款",
        "version-license-not-found": "查無此擴充套件的詳細授權條款資訊。",
        "redirect-submit": "執行",
        "redirect-lookup": "尋找:",
        "redirect-value": "值:",
-       "redirect-user": "用戶ID",
+       "redirect-user": "使用者 ID",
        "redirect-page": "頁面 ID",
        "redirect-revision": "頁面修訂 ID",
        "redirect-file": "檔案名稱",
        "specialpages-note": "* 一般特殊頁面。\n* <span class=\"mw-specialpagerestricted\">受限制的特殊頁面。</span>",
        "specialpages-group-maintenance": "維護報表",
        "specialpages-group-other": "其它特殊頁面",
-       "specialpages-group-login": "登入/建立新帳號",
+       "specialpages-group-login": "登入 / 建立帳號",
        "specialpages-group-changes": "最近變更與日誌",
        "specialpages-group-media": "媒體上傳與報表",
-       "specialpages-group-users": "用戶與權限",
+       "specialpages-group-users": "使用者與權限",
        "specialpages-group-highuse": "常用頁面",
        "specialpages-group-pages": "頁面清單",
        "specialpages-group-pagetools": "頁面工具",
        "tags-tag": "標籤名稱",
        "tags-display-header": "在更改清單中的出現方式",
        "tags-description-header": "完整含意說明",
-       "tags-active-header": "å­\98æª\94?",
+       "tags-active-header": "å\95\9fç\94¨?",
        "tags-hitcount-header": "已加上標籤的更改",
        "tags-active-yes": "是",
        "tags-active-no": "否",
        "compare-invalid-title": "所指定標題無效。",
        "compare-title-not-exists": "所指定的話題不存在。",
        "compare-revision-not-exists": "所指定的修訂不存在。",
-       "dberr-problems": "歉!這個網站出現了一些技術上的問題。",
+       "dberr-problems": "æ\8a±æ­\89ï¼\81é\80\99å\80\8b網ç«\99å\87ºç\8f¾äº\86ä¸\80äº\9bæ\8a\80è¡\93ä¸\8aç\9a\84å\95\8fé¡\8cã\80\82",
        "dberr-again": "嘗試等候數分鐘後,然後再試。",
        "dberr-info": "(無法連線資料庫伺服器:$1)",
        "dberr-info-hidden": "(無法連線資料庫伺服器)",
        "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|已暗中更改}}頁面 $3 中修訂的可見性",
        "revdelete-content-hid": "隱藏內容",
        "revdelete-summary-hid": "隱藏編輯摘要",
-       "revdelete-uname-hid": "隱藏用戶名稱",
+       "revdelete-uname-hid": "隱藏使用者名稱",
        "revdelete-content-unhid": "取消隱藏內容",
        "revdelete-summary-unhid": "取消隱藏編輯摘要",
        "revdelete-uname-unhid": "取消隱藏使用者名稱",
        "expand_templates_intro": "本特殊頁面會將文字中的樣版展開,可以包含支援的分析程式語法,如 <code><nowiki>{{</nowiki>#language:…}}</code> 與變數如 <code><nowiki>{{</nowiki>CURRENTDAY}}</code>。\n實際上,絕大部分在雙括號中的內容都會被展開。",
        "expand_templates_title": "上下文標題,用於 {{FULLPAGENAME}} 等:",
        "expand_templates_input": "輸入文字:",
-       "expand_templates_output": "結果",
+       "expand_templates_output": "結果",
        "expand_templates_xml_output": "XML 輸出",
        "expand_templates_html_output": "原始 HTML 輸出",
        "expand_templates_ok": "確定",
index af37630..1ed78b3 100644 (file)
@@ -45,3 +45,6 @@ $namespaceAliases = array(
        'Kategorie_Diskussion' => NS_CATEGORY_TALK,
 );
 
+// Remove German aliases
+$namespaceGenderAliases = array();
+
index ef0d72c..2f6c650 100644 (file)
@@ -104,6 +104,9 @@ $namespaceAliases = array(
 $separatorTransformTable = array( ',' => "\xc2\xa0", '.' => ',' );
 $linkTrail = '/^([äöüėëijßəğåůæœça-z]+)(.*)$/sDu';
 
+// Remove German aliases
+$namespaceGenderAliases = array();
+
 $specialPageAliases = array(
        'Activeusers'               => array( 'Aktive', 'AktiveMetmaacher', 'Aktive_Metmaacher', 'AktiveMedmaacher', 'Aktive_Medmaacher' ),
        'Allmessages'               => array( 'MediaWiki-Appachtemang' ),
index 4ae749a..8850302 100644 (file)
@@ -48,6 +48,9 @@ $namespaceAliases = array(
        'Bild_Diskussioun' => NS_FILE_TALK,
 );
 
+// Remove German aliases
+$namespaceGenderAliases = array();
+
 $specialPageAliases = array(
        'Activeusers'               => array( 'Aktiv_Benotzer' ),
        'Allmessages'               => array( 'All_Systemmessagen' ),
index 3397894..e66cb02 100644 (file)
@@ -131,6 +131,9 @@ $dateFormats = array(
        'ymd both' => 'H:i, Y M j.',
 );
 
+// Remove German aliases
+$namespaceGenderAliases = array();
+
 $specialPageAliases = array(
        'Allmessages'               => array( 'Systemnarichten' ),
        'Allpages'                  => array( 'Alle Sieden' ),
index 5c835dc..8b7916f 100644 (file)
@@ -50,6 +50,9 @@ $namespaceAliases = array(
        'Kategorie_Diskussion' => NS_CATEGORY_TALK,
 );
 
+// Remove German aliases
+$namespaceGenderAliases = array();
+
 $specialPageAliases = array(
        'Listadmins'                => array( 'Verwalter', 'Administratoren' ),
        'Listbots'                  => array( 'Waddefresser', 'Bots' ),
index c0832fd..edba76a 100644 (file)
@@ -58,3 +58,6 @@ $namespaceAliases = array(
        'Kadegorie_Dischbediere' => NS_CATEGORY_TALK,
 );
 
+// Remove German aliases
+$namespaceGenderAliases = array();
+
index 2ec847b..494951f 100644 (file)
@@ -59,3 +59,6 @@ $specialPageAliases = array(
        'Watchlist'                 => array( 'Bäoobôchdungslisdâ' ),
 );
 
+// Remove German aliases
+$namespaceGenderAliases = array();
+
index c9ea0f9..2eabcab 100644 (file)
@@ -102,6 +102,7 @@ class CLDRPluralRuleConverter {
 
        /**
         * Private constructor.
+        * @param string $rule
         */
        protected function __construct( $rule ) {
                $this->rule = $rule;
@@ -313,6 +314,7 @@ class CLDRPluralRuleConverter {
 
        /**
         * Throw an error
+        * @param string $message
         */
        protected function error( $message ) {
                throw new CLDRPluralRuleError( $message );
index c87c959..2d698f6 100644 (file)
@@ -6,4 +6,4 @@
 
 CREATE TABLE /*$wgDBprefix*/hitcounter (
   hc_id INTEGER UNSIGNED NOT NULL
-) ENGINE=HEAP MAX_ROWS=25000;
+) ENGINE=MEMORY MAX_ROWS=25000;
index 0a0e4e1..6ad1622 100644 (file)
@@ -7,6 +7,6 @@ CREATE TABLE /*_*/profiling (
   pf_memory float NOT NULL default 0,
   pf_name varchar(255) NOT NULL default '',
   pf_server varchar(30) NOT NULL default ''
-) ENGINE=HEAP;
+) ENGINE=MEMORY;
 
 CREATE UNIQUE INDEX /*i*/pf_name_server ON /*_*/profiling (pf_name, pf_server);
\ No newline at end of file
index 9ac204d..aeadc93 100644 (file)
@@ -125,6 +125,8 @@ EOT;
 
        /**
         * Copy all rows from $srcTable to $dstTable
+        * @param string $srcTable
+        * @param string $dstTable
         */
        function sync( $srcTable, $dstTable ) {
                $batchSize = 1000;
index 7fca377..5f77637 100644 (file)
@@ -343,6 +343,7 @@ class TextPassDumper extends BackupDumper {
 
        /**
         * @throws MWException Failure to parse XML input
+        * @param string $input
         * @return bool
         */
        function readDump( $input ) {
index 72b6aa5..eee1204 100644 (file)
@@ -148,6 +148,12 @@ class TitleCleanup extends TableCleanup {
                                $ns = 0;
                        }
 
+                       # Namespace which no longer exists. Put the page in the main namespace
+                       # since we don't have any idea of the old namespace name. See bug 68501.
+                       if ( !MWNamespace::exists( $ns ) ) {
+                               $ns = 0;
+                       }
+
                        $clean = 'Broken/' . $prior;
                        $verified = Title::makeTitleSafe( $ns, $clean );
                        if ( $verified->exists() ) {
index 0d3e643..88776f4 100644 (file)
@@ -43,6 +43,7 @@ class CommandLineInc extends Maintenance {
 
        /**
         * No help, it would just be misleading since it misses custom options
+        * @param bool $force
         */
        protected function maybeHelp( $force = false ) {
                if ( !$force ) {
index 3d30b83..bd99845 100644 (file)
@@ -41,6 +41,7 @@ class DeleteEqualMessages extends Maintenance {
 
        /**
         * @param string|bool $langCode See --lang-code option.
+        * @param array &$messageInfo
         */
        protected function fetchMessageInfo( $langCode, array &$messageInfo ) {
                global $wgContLang;
index 81bc06e..fc72908 100644 (file)
@@ -431,6 +431,7 @@ ai
 aifc
 aiff
 aiprop
+airtel
 aisort
 ajaxwatch
 al
@@ -461,6 +462,7 @@ allpagesbadtitle
 allpagesprefix
 allpagesredirect
 allpagessubmit
+allpartners
 allredirects
 allrev
 alltitles
@@ -480,6 +482,7 @@ anchorclose
 anchorencode
 and
 andconvert
+andreescu
 andtitle
 anon
 anoneditwarning
@@ -594,7 +597,6 @@ autogen
 autogenerated
 autohide
 autoload
-autoload
 autoloader
 autoloaders
 autoloading
@@ -660,6 +662,7 @@ badversion
 balancer
 balancers
 banjar
+barebone
 barstein
 base
 basefont
@@ -752,6 +755,7 @@ bolding
 booksources
 bool
 boolean
+bordercolor
 borderhack
 bot
 botedit
@@ -870,6 +874,7 @@ cedil
 ceebc
 cellpadding
 cellspacing
+cellulant
 central
 centralauth
 centralnotice
@@ -1076,6 +1081,7 @@ danga
 danielc
 darr
 datalen
+datapath
 dataset
 datasets
 datasize
@@ -1262,6 +1268,7 @@ dropdown
 dump
 dumpfm
 dupfunc
+dupl
 duplicatefiles
 duplicatesoffile
 dvips
@@ -1394,6 +1401,7 @@ epcampus
 epcoordinator
 epinstructor
 eponline
+eqiad
 erevoke
 errno
 error
@@ -1589,6 +1597,7 @@ forcebot
 forceditsummary
 forceeditsummary
 forcelinkupdate
+forcerecursivelinkupdate
 forcetoc
 forcontent
 formaction
@@ -1866,6 +1875,7 @@ ilfrom
 ilto
 im
 image
+imagecolorallocate
 imagegetsize
 imageinfo
 imageinvalidfilename
@@ -2050,6 +2060,7 @@ iwltitle
 iwprefix
 iwtitle
 iwurl
+ized
 javascript
 javascripttest
 jbartsh
@@ -2120,6 +2131,7 @@ lastdot
 lastedit
 lasteditor
 lastedittime
+lastfile
 lastlink
 lastmod
 lastmodifiedat
@@ -2171,6 +2183,7 @@ linkarr
 linkcolour
 linkprefix
 linkprefixcharset
+linkpurge
 links
 linkstoimage
 linktbl
@@ -2291,6 +2304,7 @@ mailtext
 mailto
 mainmodule
 mainpage
+maint
 maintainership
 makesafe
 male
@@ -2338,6 +2352,7 @@ medialink
 mediaqueries
 mediatype
 mediawarning
+mediawiki
 mediawiki's
 mediawikipage
 megapixels
@@ -2484,6 +2499,7 @@ mtime
 mtype
 mullane
 multi
+multiactions
 multibyte
 multicast
 multipage
@@ -2610,6 +2626,7 @@ nextredirect
 nextrevision
 nextval
 nfkc
+nfkd
 nginx
 nheight
 niklas
@@ -2945,6 +2962,7 @@ opensearchdescription
 openssl's
 openxml
 openxmlformats
+operamini
 oplus
 oppositedm
 optgroup
@@ -2959,6 +2977,7 @@ ordertype
 ordf
 ordm
 org
+orghttp
 origcategory
 ortime
 oslash
@@ -3030,6 +3049,7 @@ pagetriagetagging
 pagetriagetemplate
 pageurl
 pageview
+pango
 param
 parameters
 paraminfo
@@ -3130,8 +3150,10 @@ pltitles
 plusminus
 plusmn
 pname
+png'd
 pnmtojpeg
 pnmtopng
+pointsize
 poolcounter
 popts
 popularpages
@@ -3740,6 +3762,10 @@ slideshow
 sm
 smaxage
 smil
+smpp
+sms's
+smscontent
+smslogs
 smtp
 snippet
 sodipodi
@@ -3797,6 +3823,7 @@ stabilize
 stable
 stablesettings
 stansvik
+starcode
 start
 startid
 startime
@@ -3821,6 +3848,7 @@ stopwords
 storedversion
 strcasecmp
 strcmp
+strftime
 string
 stripos
 stripslashes
@@ -3937,6 +3965,7 @@ taglist
 tags
 tagset
 tagstack
+tahoma
 tailorings
 talk
 talkable
@@ -4096,6 +4125,7 @@ toparse
 topbar
 toplevel
 toplinks
+topojson
 toponly
 torev
 torevid
@@ -4128,6 +4158,7 @@ troff
 true
 truespeed
 trustworthy
+truteq
 truthy
 tsearch
 tsquery
@@ -4192,6 +4223,7 @@ unhelpful
 unhidden
 unhide
 unidata
+unidecode
 unindent
 unindexed
 uniq
@@ -4359,6 +4391,9 @@ usertoollinks
 useskin
 useto
 usort
+usrmonth
+ussd
+ussdcontent
 ustar
 ustoken
 utfnormal
@@ -4419,6 +4454,7 @@ vorbis
 vpad
 vrml
 vslow
+vumi
 vvcv
 vxml
 wais
@@ -4456,6 +4492,7 @@ wbxml
 wddx
 wddxfm
 weblog
+weblogs
 webm
 webp
 webrequest
@@ -4498,17 +4535,23 @@ wikilove
 wikiloveimagelog
 wikimedia
 wikimediacommons
+wikimediafoundation
+wikinews
 wikipage
 wikipedia
 wikipedian
 wikipedias
+wikiquote
 wikis
+wikisource
 wikisyntax
 wikitable
 wikitables
 wikitech
 wikitext
 wikiuser
+wikiversity
+wikivoyage
 wiktionary
 wincache
 wininet
@@ -4533,6 +4576,7 @@ wmls
 wmlsc
 wmlscript
 wmlscriptc
+wmnet
 wordcount
 wordprocessingml
 wordwg
@@ -4547,6 +4591,7 @@ writerequired
 writerights
 wrongpassword
 x
+xanalytics
 xbitmap
 xcache
 xcancel
@@ -4603,6 +4648,7 @@ yourvariant
 yourwiki
 yuml
 yyyymmddhhiiss
+zcmd
 zerobanner
 zerobar
 zerobutton
@@ -4610,11 +4656,14 @@ zeroconfig
 zerodontask
 zerodot
 zeroinfo
+zeronet
 zeroportal
+zfile
 zhdaemon
 zhengzhu
 zhtable
 zijdel
+zlang
 zlib
 zoffset
 zrma
index 074388f..d40fec6 100644 (file)
@@ -136,6 +136,7 @@ class FindHooks extends Maintenance {
 
        /**
         * Get the hook documentation, either locally or from MediaWiki.org
+        * @param string $doc
         * @return Array of documented hooks
         */
        private function getHooksFromDoc( $doc ) {
index ea86e88..cbc389b 100644 (file)
@@ -186,8 +186,8 @@ class NamespaceConflictChecker extends Maintenance {
 
        /**
         * @todo Do this for real
-        * @param int $ns
-        * @param string $name
+        * @param int $key
+        * @param string $prefix
         * @param bool $fix
         * @param string $suffix
         * @return bool
index 271a3f6..054f792 100644 (file)
@@ -32,6 +32,7 @@ class PopulateBacklinkNamespace extends LoggedUpdateMaintenance {
        public function __construct() {
                parent::__construct();
                $this->mDescription = "Populate the *_from_namespace fields";
+               $this->addOption( 'lastUpdatedId', "Highest page_id with updated links", false, true );
        }
 
        protected function getUpdateKey() {
@@ -49,7 +50,10 @@ class PopulateBacklinkNamespace extends LoggedUpdateMaintenance {
 
                $this->output( "Updating *_from_namespace fields in links tables.\n" );
 
-               $start = $db->selectField( 'page', 'MIN(page_id)', false, __METHOD__ );
+               $start = $this->getOption( 'lastUpdatedId' );
+               if ( !$start ) {
+                       $start = $db->selectField( 'page', 'MIN(page_id)', false, __METHOD__ );
+               }
                if ( !$start ) {
                        $this->output( "Nothing to do." );
                        return false;
index 4ce9474..6702209 100644 (file)
@@ -164,6 +164,7 @@ class PurgeChangedPages extends Maintenance {
         *
         * @param ResultWrapper $res Query result sorted by $column (ascending)
         * @param string $column
+        * @param int $limit
         * @return array (array of rows, string column value)
         */
        protected function pageableSortedRows( ResultWrapper $res, $column, $limit ) {
index 913e9f0..5093cb3 100644 (file)
@@ -23,6 +23,9 @@
  * @author Rob Church <robchur@gmail.com>
  */
 
+/**
+ * @param bool $delete
+ */
 function PurgeRedundantText( $delete = false ) {
 
        # Data should come off the master, wrapped in a transaction
index 0f337ec..cfffbbc 100644 (file)
@@ -136,7 +136,11 @@ class CompressOld extends Maintenance {
                }
        }
 
-       /** @todo document */
+       /**
+        * @todo document
+        * @param int $start
+        * @param string $extdb
+        */
        private function compressOldPages( $start = 0, $extdb = '' ) {
                $chunksize = 50;
                $this->output( "Starting from old_id $start...\n" );
index 307d0b0..910f56b 100644 (file)
@@ -289,6 +289,8 @@ class RecompressTracked {
 
        /**
         * Dispatch a command to a specified slave
+        * @param int $slaveId
+        * @param array|string $args
         */
        function dispatchToSlave( $slaveId, $args ) {
                $args = (array)$args;
@@ -352,6 +354,9 @@ class RecompressTracked {
 
        /**
         * Display a progress report
+        * @param string $label
+        * @param int $current
+        * @param int $end
         */
        function report( $label, $current, $end ) {
                $this->numBatches++;
@@ -707,6 +712,8 @@ class CgzCopyTransaction {
 
        /**
         * Create a transaction from a RecompressTracked object
+        * @param RecompressTracked $parent
+        * @param string $blobClass
         */
        function __construct( $parent, $blobClass ) {
                $this->blobClass = $blobClass;
index dff5cb8..290f164 100644 (file)
@@ -65,6 +65,9 @@ function resolveStubs() {
 
 /**
  * Resolve a history stub
+ * @param int $id
+ * @param string $stubText
+ * @param string $flags
  */
 function resolveStub( $id, $stubText, $flags ) {
        $fname = 'resolveStub';
index b9493cd..14a1502 100644 (file)
@@ -280,6 +280,7 @@ class SyncFileBackend extends Maintenance {
         * Substitute the backend name of storage paths with that of a given one
         *
         * @param array|string $paths List of paths or single string path
+        * @param FileBackend $backend
         * @return array|string
         */
        protected function replaceNamePaths( $paths, FileBackend $backend ) {
index 4b9a5e2..f181e0f 100644 (file)
@@ -736,7 +736,7 @@ CREATE UNIQUE INDEX /*i*/ss_row_id ON /*_*/site_stats (ss_row_id);
 --
 CREATE TABLE /*_*/hitcounter (
   hc_id int unsigned NOT NULL
-) ENGINE=HEAP MAX_ROWS=25000;
+) ENGINE=MEMORY MAX_ROWS=25000;
 
 
 --
index 19c1d24..5bee7f9 100644 (file)
@@ -219,6 +219,8 @@ TEXT;
        /**
         * Return an SQL expression selecting rows which sort above the given row,
         * assuming an ordering of cl_to, cl_type, cl_from
+        * @param stdClass $row
+        * @param DatabaseBase $dbw
         */
        function getBatchCondition( $row, $dbw ) {
                $fields = array( 'cl_to', 'cl_type', 'cl_from' );
index 9b8714d..99ba3b8 100644 (file)
@@ -40,7 +40,11 @@ class UserOptions {
 
        private $mMode, $mReady;
 
-       /** Constructor. Will show usage and exit if script options are not correct */
+       /**
+        * Constructor. Will show usage and exit if script options are not correct
+        * @param array $opts
+        * @param array $args
+        */
        function __construct( $opts, $args ) {
                if ( !$this->checkOpts( $opts, $args ) ) {
                        UserOptions::showUsageAndExit();
diff --git a/mw-config/config-cc.css b/mw-config/config-cc.css
new file mode 100644 (file)
index 0000000..ecd10fa
--- /dev/null
@@ -0,0 +1,56 @@
+/**
+ * Copy of CC standard stylesheet, plus tweaks for iframe usage
+ */
+
+body {
+       margin: 0;
+       background: #eee;
+       font-family: Verdana;
+       color: #333;
+}
+
+#main {
+       border: 1px solid #D0D0D0;
+       background: #fff;
+       margin: 0.5em;
+}
+
+/**
+ * Looks like you have to specify the width of #menu
+ * or IE5 Mac stretches it all the way across the div, and
+ * Opera streches it half way.
+ */
+
+#main #menu {
+       border-left: 1px dotted #ccc;
+       float: right;
+       width: 230px;
+       background: white;
+       margin: 0 0 10px 10px;
+}
+
+td, h3, p, h1, pre {
+       margin: 0 20px 20px 20px;
+       font-size: 11px;
+       line-height: 140%;
+}
+
+.header {
+       padding-left: 10px;
+       padding-top: 10px;
+}
+
+.nav {
+       padding-left: 10px;
+       padding-bottom: 10px;
+       font-size: 11px;
+       margin-bottom: 16px;
+}
+
+#menu p {
+       font-size: 11px;
+}
+
+.dent {
+       margin-left: 64px;
+}
diff --git a/mw-config/config.css b/mw-config/config.css
new file mode 100644 (file)
index 0000000..17b2039
--- /dev/null
@@ -0,0 +1,174 @@
+.env-check {
+       font-size: 90%;
+       margin: 1em 0 1em 2.5em;
+}
+
+.config-section {
+       margin-top: 2em;
+}
+
+.config-block {
+       margin-top: 2em;
+       display: block;
+
+}
+
+.config-block-label {
+       display: block;
+       margin-bottom: .2em;
+}
+
+.config-block-label label, .config-label {
+       font-weight: bold;
+       padding-right: .5em;
+       padding-top: .2em;
+}
+
+.config-block-elements {
+       margin-left: 2em;
+}
+
+.config-block-elements li {
+       list-style: none;
+}
+
+.config-input {
+       clear: left;
+       zoom: 100%; /* IE hack */
+}
+
+.config-page-wrapper {
+       padding: 0.5em;
+}
+
+.config-page-list {
+       float: right;
+       width: 12em;
+       border: 1px solid #aaa;
+       background: #fff;
+       padding: 0.5em;
+       /* 3em left margin to leave space between the list and the page-content */
+       margin: 0.5em 0.5em 0.5em 3.5em;
+}
+
+.config-page {
+       padding: 0.5em 0.5em 0.5em 2em;
+       margin: 0.5em 0.5em 0.5em 0.5em;
+       background: #eee;
+}
+
+.config-submit {
+       clear: left;
+       text-align: center;
+       padding: 1em;
+}
+
+.config-submit input {
+       margin-left: 0.5em;
+       margin-right: 0.5em;
+}
+
+.config-page-disabled {
+       color: #aaa;
+}
+
+.config-error-box {
+       border: 2px solid #f00;
+}
+
+.config-page-current {
+       font-weight: bold;
+}
+
+.config-message {
+       display: list-item;
+       line-height: 1.5em;
+       /* @embed */
+       list-style-image: url(images/bullet.gif);
+       list-style-type: square;
+}
+
+.config-input-text {
+       width: 20em;
+       margin-right: 1em;
+}
+
+.config-input-check {
+       margin-left: 10em;
+}
+
+.config-skins-item {
+       /* Clearfix */
+       clear: left;
+       overflow: hidden;
+}
+
+.config-skins-item .config-input-check {
+       margin-left: 10em;
+       width: 20em;
+       float: left;
+}
+
+.config-skins-item .config-skins-use-as-default {
+       float: left;
+}
+
+.error {
+       color: red;
+       background-color: #fff;
+       font-weight: bold;
+       left: 1em;
+       font-size: 100%;
+}
+
+.config-settings-block {
+       list-style-type: none;
+       list-style-image: none;
+       margin: 0;
+       padding: 0;
+}
+
+.btn-install {
+       font-weight: bold;
+       font-size: 110%;
+       padding: .2em .3em;
+}
+
+.success-message {
+       font-weight: bold;
+       font-size: 110%;
+       color: green;
+}
+
+.success-box {
+       font-size: 130%;
+}
+
+.config-cc-wrapper {
+       clear: left;
+       /* If you change this height, also change it in WebInstallerOptions::submitCC() */
+       height: 54em;
+}
+
+.config-plainlink a {
+       background: none !important;
+       padding: 0 !important;
+}
+
+.config-download-link {
+       font-size: 1.8em;
+       margin-left: 2em;
+}
+
+.config-download-link a {
+       background: url(images/download-32.png) no-repeat center left;
+       padding-left: 40px; /* 32 px for the image (above), plus some breathing room */
+       height: 32px; /* provide enough vertical room for the image */
+       display: inline-block; /* allow the height property (above) to work */
+       line-height: 32px; /* center the text vertically */
+}
+
+#config-live-log {
+       overflow: hidden;
+       min-width: 20em;
+}
diff --git a/mw-config/config.js b/mw-config/config.js
new file mode 100644 (file)
index 0000000..2886e08
--- /dev/null
@@ -0,0 +1,108 @@
+( function ( $ ) {
+       $( function () {
+               var $label, labelText;
+
+               function syncText() {
+                       var value = $(this).val()
+                               .replace( /[\[\]\{\}|#<>%+? ]/g, '_' )
+                               .replace( /&/, '&amp;' )
+                               .replace( /__+/g, '_' )
+                               .replace( /^_+/, '' )
+                               .replace( /_+$/, '' );
+                       value = value.substr( 0, 1 ).toUpperCase() + value.substr( 1 );
+                       $label.text( labelText.replace( '$1', value ) );
+               }
+
+               // Set up the help system
+               $( '.mw-help-field-data' )
+                       .hide()
+                       .closest( '.mw-help-field-container' )
+                               .find( '.mw-help-field-hint' )
+                                       .show()
+                                       .click( function () {
+                                               $(this)
+                                                       .closest( '.mw-help-field-container' )
+                                                               .find( '.mw-help-field-data' )
+                                                                       .slideToggle( 'fast' );
+                                       } );
+
+               // Show/hide code for DB-specific options
+               // FIXME: Do we want slow, fast, or even non-animated (instantaneous) showing/hiding here?
+               $( '.dbRadio' ).each( function () {
+                       $( document.getElementById( $(this).attr( 'rel' ) ) ).hide();
+               } );
+               $( document.getElementById( $( '.dbRadio:checked' ).attr( 'rel' ) ) ).show();
+               $( '.dbRadio' ).click( function () {
+                       var $checked = $( '.dbRadio:checked' ),
+                               $wrapper = $( document.getElementById( $checked.attr( 'rel' ) ) );
+                       if ( $wrapper.is( ':hidden' ) ) {
+                               $( '.dbWrapper' ).hide( 'slow' );
+                               $wrapper.show( 'slow' );
+                       }
+               } );
+
+               // Scroll to the bottom of upgrade log
+               $( '#config-live-log' ).children( 'textarea' ).each( function () {
+                       this.scrollTop = this.scrollHeight;
+               } );
+
+               // Show/hide Creative Commons thingy
+               $( '.licenseRadio' ).click( function () {
+                       var $wrapper = $( '#config-cc-wrapper' );
+                       if ( $( '#config__LicenseCode_cc-choose' ).is( ':checked' ) ) {
+                               $wrapper.show( 'slow' );
+                       } else {
+                               $wrapper.hide( 'slow' );
+                       }
+               } );
+
+               // Show/hide random stuff (email, upload)
+               $( '.showHideRadio' ).click( function () {
+                       var $wrapper = $( '#' + $(this).attr( 'rel' ) );
+                       if ( $(this).is( ':checked' ) ) {
+                               $wrapper.show( 'slow' );
+                       } else {
+                               $wrapper.hide( 'slow' );
+                       }
+               } );
+               $( '.hideShowRadio' ).click( function () {
+                       var $wrapper = $( '#' + $(this).attr( 'rel' ) );
+                       if ( $(this).is( ':checked' ) ) {
+                               $wrapper.hide( 'slow' );
+                       } else {
+                               $wrapper.show( 'slow' );
+                       }
+               } );
+
+               // Hide "other" textboxes by default
+               // Should not be done in CSS for javascript disabled compatibility
+               $( '.enabledByOther' ).closest( '.config-block' ).hide();
+
+               // Enable/disable "other" textboxes
+               $( '.enableForOther' ).click( function () {
+                       var $textbox = $( document.getElementById( $(this).attr( 'rel' ) ) );
+                       // FIXME: Ugh, this is ugly
+                       if ( $(this).val() === 'other' ) {
+                               $textbox.removeProp( 'readonly' ).closest( '.config-block' ).slideDown( 'fast' );
+                       } else {
+                               $textbox.prop( 'readonly', true ).closest( '.config-block' ).slideUp( 'fast' );
+                       }
+               } );
+
+               // Synchronize radio button label for sitename with textbox
+               $label = $( 'label[for=config__NamespaceType_site-name]' );
+               labelText = $label.text();
+               $label.text( labelText.replace( '$1', '' ) );
+               $( '#config_wgSitename' ).on( 'keyup change', syncText ).each( syncText );
+
+               // Show/Hide memcached servers when needed
+               $( 'input[name$="config_wgMainCacheType"]' ).change( function () {
+                       var $memc = $( '#config-memcachewrapper' );
+                       if ( $( 'input[name$="config_wgMainCacheType"]:checked' ).val() === 'memcached' ) {
+                               $memc.show( 'slow' );
+                       } else {
+                               $memc.hide( 'slow' );
+                       }
+               } );
+       } );
+}( jQuery ) );
diff --git a/mw-config/images/ajax-loader.gif b/mw-config/images/ajax-loader.gif
new file mode 100644 (file)
index 0000000..72203fd
Binary files /dev/null and b/mw-config/images/ajax-loader.gif differ
diff --git a/mw-config/images/bullet.gif b/mw-config/images/bullet.gif
new file mode 100644 (file)
index 0000000..b43de48
Binary files /dev/null and b/mw-config/images/bullet.gif differ
diff --git a/mw-config/images/critical-32.png b/mw-config/images/critical-32.png
new file mode 100644 (file)
index 0000000..9b38e6a
Binary files /dev/null and b/mw-config/images/critical-32.png differ
diff --git a/mw-config/images/download-32.png b/mw-config/images/download-32.png
new file mode 100644 (file)
index 0000000..e5b8318
Binary files /dev/null and b/mw-config/images/download-32.png differ
diff --git a/mw-config/images/info-32.png b/mw-config/images/info-32.png
new file mode 100644 (file)
index 0000000..ab09e1d
Binary files /dev/null and b/mw-config/images/info-32.png differ
diff --git a/mw-config/images/installer-logo.png b/mw-config/images/installer-logo.png
new file mode 100644 (file)
index 0000000..8c42118
Binary files /dev/null and b/mw-config/images/installer-logo.png differ
diff --git a/mw-config/images/tick-32.png b/mw-config/images/tick-32.png
new file mode 100644 (file)
index 0000000..34cfa9c
Binary files /dev/null and b/mw-config/images/tick-32.png differ
diff --git a/mw-config/images/warning-32.png b/mw-config/images/warning-32.png
new file mode 100644 (file)
index 0000000..0400734
Binary files /dev/null and b/mw-config/images/warning-32.png differ
index 8120599..762af69 100644 (file)
@@ -163,15 +163,18 @@ if ( isset( $_REQUEST['expand'] ) ) {
        }
 }
 
+// @codingStandardsIgnoreStart
 class profile_point {
-       var $name;
-       var $count;
-       var $time;
-       var $children;
+       // @codingStandardsIgnoreEnd
 
-       static $totaltime, $totalmemory, $totalcount;
+       public $name;
+       public $count;
+       public $time;
+       public $children;
 
-       function __construct( $name, $count, $time, $memory ) {
+       public static $totaltime, $totalmemory, $totalcount;
+
+       public function __construct( $name, $count, $time, $memory ) {
                $this->name = $name;
                $this->count = $count;
                $this->time = $time;
@@ -179,11 +182,11 @@ class profile_point {
                $this->children = array();
        }
 
-       function add_child( $child ) {
+       public function add_child( $child ) {
                $this->children[] = $child;
        }
 
-       function display( $expand, $indent = 0.0 ) {
+       public function display( $expand, $indent = 0.0 ) {
                usort( $this->children, 'compare_point' );
 
                $ex = isset( $expand[$this->name()] );
@@ -214,6 +217,7 @@ class profile_point {
                                <?php echo htmlspecialchars( str_replace( ',', ', ', $this->name() ) ) . $extet ?>
                        </div>
                </th>
+               <?php //@codingStandardsIgnoreStart ?>
                <td class="mw-profileinfo-timep"><?php echo @wfPercent( $this->time() / self::$totaltime * 100 ); ?></td>
                <td class="mw-profileinfo-memoryp"><?php echo @wfPercent( $this->memory() / self::$totalmemory * 100 ); ?></td>
                <td class="mw-profileinfo-count"><?php echo $this->count(); ?></td>
@@ -222,6 +226,7 @@ class profile_point {
                <td class="mw-profileinfo-mpc"><?php echo round( sprintf( '%.2f', $this->memoryPerCall() / 1024 ), 2 ); ?></td>
                <td class="mw-profileinfo-tpr"><?php echo @round( sprintf( '%.2f', $this->time() / self::$totalcount ), 2 ); ?></td>
                <td class="mw-profileinfo-mpr"><?php echo @round( sprintf( '%.2f', $this->memory() / self::$totalcount / 1024 ), 2 ); ?></td>
+               <?php //@codingStandardsIgnoreEnd ?>
        </tr>
                <?php
                if ( $ex ) {
@@ -231,49 +236,61 @@ class profile_point {
                }
        }
 
-       function name() {
+       public function name() {
                return $this->name;
        }
 
-       function count() {
+       public function count() {
                return $this->count;
        }
 
-       function time() {
+       public function time() {
                return $this->time;
        }
 
-       function memory() {
+       public function memory() {
                return $this->memory;
        }
 
-       function timePerCall() {
+       public function timePerCall() {
+               // @codingStandardsIgnoreStart
                return @( $this->time / $this->count );
+               // @codingStandardsIgnoreEnd
        }
 
-       function memoryPerCall() {
+       public function memoryPerCall() {
+               // @codingStandardsIgnoreStart
                return @( $this->memory / $this->count );
+               // @codingStandardsIgnoreEnd
        }
 
-       function callsPerRequest() {
+       public function callsPerRequest() {
+               // @codingStandardsIgnoreStart
                return @( $this->count / self::$totalcount );
+               // @codingStandardsIgnoreEnd
        }
 
-       function timePerRequest() {
+       public function timePerRequest() {
+               // @codingStandardsIgnoreStart
                return @( $this->time / self::$totalcount );
+               // @codingStandardsIgnoreEnd
        }
 
-       function memoryPerRequest() {
+       public function memoryPerRequest() {
+               // @codingStandardsIgnoreStart
                return @( $this->memory / self::$totalcount );
+               // @codingStandardsIgnoreEnd
        }
 
-       function fmttime() {
+       public function fmttime() {
                return sprintf( '%5.02f', $this->time );
        }
 };
 
 function compare_point( profile_point $a, profile_point $b ) {
+       // @codingStandardsIgnoreStart
        global $sort;
+       // @codingStandardsIgnoreEnd
        switch ( $sort ) {
                case 'name':
                        return strcmp( $a->name(), $b->name() );
@@ -342,7 +359,9 @@ if ( isset( $_REQUEST['filter'] ) ) {
        profile_point::$totalmemory = 0.0;
 
        function getEscapedProfileUrl( $_filter = false, $_sort = false, $_expand = false ) {
+               // @codingStandardsIgnoreStart
                global $filter, $sort, $expand;
+               // @codingStandardsIgnoreEnd
 
                if ( $_expand === false ) {
                        $_expand = $expand;
index e5d80ca..092660c 100644 (file)
@@ -128,7 +128,7 @@ return array(
                        array(
                                'resources/lib/jquery/jquery.js'
                        ) ),
-               'debugRaw' => false,
+               'raw' => true,
                'targets' => array( 'desktop', 'mobile' ),
        ),
 
@@ -691,12 +691,15 @@ return array(
        'moment' => array(
                'scripts' => 'resources/lib/moment/moment.js',
                'languageScripts' => array(
+                       'af' => 'resources/lib/moment/lang/af.js',
                        'ar' => 'resources/lib/moment/lang/ar.js',
                        'ar-ma' => 'resources/lib/moment/lang/ar-ma.js',
                        'ar-sa' => 'resources/lib/moment/lang/ar-sa.js',
                        'az' => 'resources/lib/moment/lang/az.js',
+                       'be' => 'resources/lib/moment/lang/be.js',
                        'bg' => 'resources/lib/moment/lang/bg.js',
                        'bn' => 'resources/lib/moment/lang/bn.js',
+                       'bo' => 'resources/lib/moment/lang/bo.js',
                        'br' => 'resources/lib/moment/lang/br.js',
                        'bs' => 'resources/lib/moment/lang/bs.js',
                        'ca' => 'resources/lib/moment/lang/ca.js',
@@ -737,6 +740,7 @@ return array(
                        'ml' => 'resources/lib/moment/lang/ml.js',
                        'mr' => 'resources/lib/moment/lang/mr.js',
                        'ms-my' => 'resources/lib/moment/lang/ms-my.js',
+                       'my' => 'resources/lib/moment/lang/my.js',
                        'nb' => 'resources/lib/moment/lang/nb.js',
                        'ne' => 'resources/lib/moment/lang/ne.js',
                        'nl' => 'resources/lib/moment/lang/nl.js',
@@ -771,7 +775,7 @@ return array(
        'mediawiki' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.js',
                'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js',
-               'debugRaw' => false,
+               'raw' => true,
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.api' => array(
@@ -942,6 +946,7 @@ return array(
        ),
        'mediawiki.Uri' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.Uri.js',
+               'dependencies' => 'mediawiki.util',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.user' => array(
@@ -1182,6 +1187,7 @@ return array(
                'dependencies' => array(
                        'mediawiki.api.watch',
                        'mediawiki.notify',
+                       'mediawiki.page.startup',
                        'mediawiki.util',
                        'jquery.accessKeyLabel',
                        'jquery.mwExtension',
@@ -1245,6 +1251,9 @@ return array(
        'mediawiki.special.changeslist.enhanced' => array(
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css',
        ),
+       'mediawiki.special.import' => array(
+               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.import.js',
+       ),
        'mediawiki.special.movePage' => array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.movePage.js',
                'dependencies' => 'jquery.byteLimit',
@@ -1356,7 +1365,8 @@ return array(
                        'mediawiki.api',
                        'mediawiki.api.watch',
                        'mediawiki.notify',
-                       'mediawiki.Title'
+                       'mediawiki.Title',
+                       'mediawiki.util',
                ),
        ),
        'mediawiki.special.javaScriptTest' => array(
@@ -1373,6 +1383,15 @@ return array(
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.version.css',
        ),
 
+       /* MediaWiki Installer */
+
+       'mediawiki.legacy.config' => array(
+               // Used in the web installer. Test it after modifying this definition!
+               // These files are not actually loaded via ResourceLoader, so dependencies etc. won't work.
+               'scripts' => 'mw-config/config.js',
+               'styles' => 'mw-config/config.css',
+       ),
+
        /* MediaWiki Legacy */
 
        'mediawiki.legacy.ajax' => array(
@@ -1390,14 +1409,6 @@ return array(
                'remoteBasePath' => $GLOBALS['wgStylePath'],
                'localBasePath' => $GLOBALS['wgStyleDirectory'],
        ),
-       'mediawiki.legacy.config' => array(
-               // Used in the web installer. Test it after modifying this definition!
-               'scripts' => 'common/config.js',
-               'styles' => array( 'common/config.css' ),
-               'remoteBasePath' => $GLOBALS['wgStylePath'],
-               'localBasePath' => $GLOBALS['wgStyleDirectory'],
-               'dependencies' => 'mediawiki.legacy.wikibits',
-       ),
        'mediawiki.legacy.protect' => array(
                'scripts' => 'common/protect.js',
                'remoteBasePath' => $GLOBALS['wgStylePath'],
@@ -1452,6 +1463,8 @@ return array(
                'styles' => array(
                        'resources/src/mediawiki.ui/components/checkbox.less',
                ),
+               'position' => 'top',
+               'targets' => array( 'desktop', 'mobile' ),
        ),
        // Lightweight module for anchor styles
        'mediawiki.ui.anchor' => array(
diff --git a/resources/lib/moment/lang/af.js b/resources/lib/moment/lang/af.js
new file mode 100644 (file)
index 0000000..2777e58
--- /dev/null
@@ -0,0 +1,65 @@
+// moment.js locale configuration
+// locale : afrikaans (af)
+// author : Werner Mollentze : https://github.com/wernerm
+
+(function (factory) {
+    if (typeof define === 'function' && define.amd) {
+        define(['moment'], factory); // AMD
+    } else if (typeof exports === 'object') {
+        module.exports = factory(require('../moment')); // Node
+    } else {
+        factory(window.moment); // Browser global
+    }
+}(function (moment) {
+    return moment.defineLocale('af', {
+        months : "Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),
+        monthsShort : "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),
+        weekdays : "Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),
+        weekdaysShort : "Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),
+        weekdaysMin : "So_Ma_Di_Wo_Do_Vr_Sa".split("_"),
+        meridiem : function (hours, minutes, isLower) {
+            if (hours < 12) {
+                return isLower ? 'vm' : 'VM';
+            } else {
+                return isLower ? 'nm' : 'NM';
+            }
+        },
+        longDateFormat : {
+            LT : "HH:mm",
+            L : "DD/MM/YYYY",
+            LL : "D MMMM YYYY",
+            LLL : "D MMMM YYYY LT",
+            LLLL : "dddd, D MMMM YYYY LT"
+        },
+        calendar : {
+            sameDay : '[Vandag om] LT',
+            nextDay : '[Môre om] LT',
+            nextWeek : 'dddd [om] LT',
+            lastDay : '[Gister om] LT',
+            lastWeek : '[Laas] dddd [om] LT',
+            sameElse : 'L'
+        },
+        relativeTime : {
+            future : "oor %s",
+            past : "%s gelede",
+            s : "'n paar sekondes",
+            m : "'n minuut",
+            mm : "%d minute",
+            h : "'n uur",
+            hh : "%d ure",
+            d : "'n dag",
+            dd : "%d dae",
+            M : "'n maand",
+            MM : "%d maande",
+            y : "'n jaar",
+            yy : "%d jaar"
+        },
+        ordinal : function (number) {
+            return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
+        },
+        week : {
+            dow : 1, // Maandag is die eerste dag van die week.
+            doy : 4  // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
+        }
+    });
+}));
index 1c159f1..c8add2d 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Moroccan Arabic (ar-ma)
+// moment.js locale configuration
+// locale : Moroccan Arabic (ar-ma)
 // author : ElFadili Yassine : https://github.com/ElFadiliY
 // author : Abdel Said : https://github.com/abdelsaid
 
@@ -12,7 +12,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('ar-ma', {
+    return moment.defineLocale('ar-ma', {
         months : "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
         monthsShort : "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
         weekdays : "الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
index 162d386..64e2091 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Arabic Saudi Arabia (ar-sa)
+// moment.js locale configuration
+// locale : Arabic Saudi Arabia (ar-sa)
 // author : Suhail Alkowaileet : https://github.com/xsoh
 
 (function (factory) {
@@ -35,7 +35,7 @@
         '٠': '0'
     };
 
-    return moment.lang('ar-sa', {
+    return moment.defineLocale('ar-sa', {
         months : "يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),
         monthsShort : "يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),
         weekdays : "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
index dd01a42..2af64ee 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Arabic (ar)
+// moment.js locale configuration
+// locale : Arabic (ar)
 // author : Abdel Said : https://github.com/abdelsaid
 // changes in months, weekdays : Ahmed Elkhatib
 
@@ -36,7 +36,7 @@
         '٠': '0'
     };
 
-    return moment.lang('ar', {
+    return moment.defineLocale('ar', {
         months : "يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),
         monthsShort : "يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),
         weekdays : "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
index bee1f9a..a6a5aff 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : azerbaijani (az)
+// moment.js locale configuration
+// locale : azerbaijani (az)
 // author : topchiyev : https://github.com/topchiyev
 
 (function (factory) {
@@ -11,7 +11,6 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-
     var suffixes = {
         1: "-inci",
         5: "-inci",
@@ -37,7 +36,7 @@
         60: "-ıncı",
         90: "-ıncı"
     };
-    return moment.lang('az', {
+    return moment.defineLocale('az', {
         months : "yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),
         monthsShort : "yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),
         weekdays : "Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),
diff --git a/resources/lib/moment/lang/be.js b/resources/lib/moment/lang/be.js
new file mode 100644 (file)
index 0000000..6e0aef1
--- /dev/null
@@ -0,0 +1,150 @@
+// moment.js locale configuration
+// locale : belarusian (be)
+// author : Dmitry Demidov : https://github.com/demidov91
+// author: Praleska: http://praleska.pro/
+// Author : Menelion Elensúle : https://github.com/Oire
+
+(function (factory) {
+    if (typeof define === 'function' && define.amd) {
+        define(['moment'], factory); // AMD
+    } else if (typeof exports === 'object') {
+        module.exports = factory(require('../moment')); // Node
+    } else {
+        factory(window.moment); // Browser global
+    }
+}(function (moment) {
+    function plural(word, num) {
+        var forms = word.split('_');
+        return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+    }
+
+    function relativeTimeWithPlural(number, withoutSuffix, key) {
+        var format = {
+            'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
+            'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
+            'dd': 'дзень_дні_дзён',
+            'MM': 'месяц_месяцы_месяцаў',
+            'yy': 'год_гады_гадоў'
+        };
+        if (key === 'm') {
+            return withoutSuffix ? 'хвіліна' : 'хвіліну';
+        }
+        else if (key === 'h') {
+            return withoutSuffix ? 'гадзіна' : 'гадзіну';
+        }
+        else {
+            return number + ' ' + plural(format[key], +number);
+        }
+    }
+
+    function monthsCaseReplace(m, format) {
+        var months = {
+            'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'),
+            'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
+        },
+
+        nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+            'accusative' :
+            'nominative';
+
+        return months[nounCase][m.month()];
+    }
+
+    function weekdaysCaseReplace(m, format) {
+        var weekdays = {
+            'nominative': 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
+            'accusative': 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_')
+        },
+
+        nounCase = (/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/).test(format) ?
+            'accusative' :
+            'nominative';
+
+        return weekdays[nounCase][m.day()];
+    }
+
+    return moment.defineLocale('be', {
+        months : monthsCaseReplace,
+        monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
+        weekdays : weekdaysCaseReplace,
+        weekdaysShort : "нд_пн_ат_ср_чц_пт_сб".split("_"),
+        weekdaysMin : "нд_пн_ат_ср_чц_пт_сб".split("_"),
+        longDateFormat : {
+            LT : "HH:mm",
+            L : "DD.MM.YYYY",
+            LL : "D MMMM YYYY г.",
+            LLL : "D MMMM YYYY г., LT",
+            LLLL : "dddd, D MMMM YYYY г., LT"
+        },
+        calendar : {
+            sameDay: '[Сёння ў] LT',
+            nextDay: '[Заўтра ў] LT',
+            lastDay: '[Учора ў] LT',
+            nextWeek: function () {
+                return '[У] dddd [ў] LT';
+            },
+            lastWeek: function () {
+                switch (this.day()) {
+                case 0:
+                case 3:
+                case 5:
+                case 6:
+                    return '[У мінулую] dddd [ў] LT';
+                case 1:
+                case 2:
+                case 4:
+                    return '[У мінулы] dddd [ў] LT';
+                }
+            },
+            sameElse: 'L'
+        },
+        relativeTime : {
+            future : "праз %s",
+            past : "%s таму",
+            s : "некалькі секунд",
+            m : relativeTimeWithPlural,
+            mm : relativeTimeWithPlural,
+            h : relativeTimeWithPlural,
+            hh : relativeTimeWithPlural,
+            d : "дзень",
+            dd : relativeTimeWithPlural,
+            M : "месяц",
+            MM : relativeTimeWithPlural,
+            y : "год",
+            yy : relativeTimeWithPlural
+        },
+
+
+        meridiem : function (hour, minute, isLower) {
+            if (hour < 4) {
+                return "ночы";
+            } else if (hour < 12) {
+                return "раніцы";
+            } else if (hour < 17) {
+                return "дня";
+            } else {
+                return "вечара";
+            }
+        },
+
+        ordinal: function (number, period) {
+            switch (period) {
+            case 'M':
+            case 'd':
+            case 'DDD':
+            case 'w':
+            case 'W':
+                return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
+            case 'D':
+                return number + '-га';
+            default:
+                return number;
+            }
+        },
+
+        week : {
+            dow : 1, // Monday is the first day of the week.
+            doy : 7  // The week that contains Jan 1st is the first week of the year.
+        }
+    });
+}));
index f47ed65..b8a8c32 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : bulgarian (bg)
+// moment.js locale configuration
+// locale : bulgarian (bg)
 // author : Krasen Borisov : https://github.com/kraz
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('bg', {
+    return moment.defineLocale('bg', {
         months : "януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),
         monthsShort : "янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),
         weekdays : "неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),
index fb23bd0..8ceb8eb 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Bengali (bn)
+// moment.js locale configuration
+// locale : Bengali (bn)
 // author : Kaushik Gandhi : https://github.com/kaushikgandhi
 
 (function (factory) {
@@ -36,7 +36,7 @@
         '০': '0'
     };
 
-    return moment.lang('bn', {
+    return moment.defineLocale('bn', {
         months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split("_"),
         monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split("_"),
         weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার'.split("_"),
@@ -82,7 +82,7 @@
                 return symbolMap[match];
             });
         },
-        //Bengali is a vast language its spoken 
+        //Bengali is a vast language its spoken
         //in different forms in various parts of the world.
         //I have just generalized with most common one used
         meridiem : function (hour, minute, isLower) {
diff --git a/resources/lib/moment/lang/bo.js b/resources/lib/moment/lang/bo.js
new file mode 100644 (file)
index 0000000..f1567ab
--- /dev/null
@@ -0,0 +1,103 @@
+// moment.js locale configuration
+// locale : tibetan (bo)
+// author : Thupten N. Chakrishar : https://github.com/vajradog
+
+(function (factory) {
+    if (typeof define === 'function' && define.amd) {
+        define(['moment'], factory); // AMD
+    } else if (typeof exports === 'object') {
+        module.exports = factory(require('../moment')); // Node
+    } else {
+        factory(window.moment); // Browser global
+    }
+}(function (moment) {
+    var symbolMap = {
+        '1': '༡',
+        '2': '༢',
+        '3': '༣',
+        '4': '༤',
+        '5': '༥',
+        '6': '༦',
+        '7': '༧',
+        '8': '༨',
+        '9': '༩',
+        '0': '༠'
+    },
+    numberMap = {
+        '༡': '1',
+        '༢': '2',
+        '༣': '3',
+        '༤': '4',
+        '༥': '5',
+        '༦': '6',
+        '༧': '7',
+        '༨': '8',
+        '༩': '9',
+        '༠': '0'
+    };
+
+    return moment.defineLocale('bo', {
+        months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split("_"),
+        monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split("_"),
+        weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split("_"),
+        weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split("_"),
+        weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split("_"),
+        longDateFormat : {
+            LT : "A h:mm",
+            L : "DD/MM/YYYY",
+            LL : "D MMMM YYYY",
+            LLL : "D MMMM YYYY, LT",
+            LLLL : "dddd, D MMMM YYYY, LT"
+        },
+        calendar : {
+            sameDay : '[དི་རིང] LT',
+            nextDay : '[སང་ཉིན] LT',
+            nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
+            lastDay : '[ཁ་སང] LT',
+            lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
+            sameElse : 'L'
+        },
+        relativeTime : {
+            future : "%s ལ་",
+            past : "%s སྔན་ལ",
+            s : "ལམ་སང",
+            m : "སྐར་མ་གཅིག",
+            mm : "%d སྐར་མ",
+            h : "ཆུ་ཚོད་གཅིག",
+            hh : "%d ཆུ་ཚོད",
+            d : "ཉིན་གཅིག",
+            dd : "%d ཉིན་",
+            M : "ཟླ་བ་གཅིག",
+            MM : "%d ཟླ་བ",
+            y : "ལོ་གཅིག",
+            yy : "%d ལོ"
+        },
+        preparse: function (string) {
+            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
+                return numberMap[match];
+            });
+        },
+        postformat: function (string) {
+            return string.replace(/\d/g, function (match) {
+                return symbolMap[match];
+            });
+        },
+        meridiem : function (hour, minute, isLower) {
+            if (hour < 4) {
+                return "མཚན་མོ";
+            } else if (hour < 10) {
+                return "ཞོགས་ཀས";
+            } else if (hour < 17) {
+                return "ཉིན་གུང";
+            } else if (hour < 20) {
+                return "དགོང་དག";
+            } else {
+                return "མཚན་མོ";
+            }
+        },
+        week : {
+            dow : 0, // Sunday is the first day of the week.
+            doy : 6  // The week that contains Jan 1st is the first week of the year.
+        }
+    });
+}));
index 39c60df..fb11fe1 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : breton (br)
+// moment.js locale configuration
+// locale : breton (br)
 // author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
 
 (function (factory) {
@@ -59,7 +59,7 @@
         return mutationTable[text.charAt(0)] + text.substring(1);
     }
 
-    return moment.lang('br', {
+    return moment.defineLocale('br', {
         months : "Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),
         monthsShort : "Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),
         weekdays : "Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),
index 83a9b4c..d69015a 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : bosnian (bs)
+// moment.js locale configuration
+// locale : bosnian (bs)
 // author : Nedim Cholich : https://github.com/frontyard
 // based on (hr) translation by Bojan Marković
 
@@ -12,7 +12,6 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-
     function translate(number, withoutSuffix, key) {
         var result = number + " ";
         switch (key) {
@@ -66,9 +65,9 @@
         }
     }
 
-    return moment.lang('bs', {
-               months : "januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),
-               monthsShort : "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
+    return moment.defineLocale('bs', {
+        months : "januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),
+        monthsShort : "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
         weekdays : "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),
         weekdaysShort : "ned._pon._uto._sri._čet._pet._sub.".split("_"),
         weekdaysMin : "ne_po_ut_sr_če_pe_su".split("_"),
index cf47113..932c1cb 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : catalan (ca)
+// moment.js locale configuration
+// locale : catalan (ca)
 // author : Juan G. Hurtado : https://github.com/juanghurtado
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('ca', {
+    return moment.defineLocale('ca', {
         months : "gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),
         monthsShort : "gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),
         weekdays : "diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),
index cb79c9b..085bba0 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : czech (cs)
+// moment.js locale configuration
+// locale : czech (cs)
 // author : petrbela : https://github.com/petrbela
 
 (function (factory) {
@@ -71,7 +71,7 @@
         }
     }
 
-    return moment.lang('cs', {
+    return moment.defineLocale('cs', {
         months : months,
         monthsShort : monthsShort,
         monthsParse : (function (months, monthsShort) {
index a5812de..0a290d8 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : chuvash (cv)
+// moment.js locale configuration
+// locale : chuvash (cv)
 // author : Anatoly Mironov : https://github.com/mirontoli
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('cv', {
+    return moment.defineLocale('cv', {
         months : "кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав".split("_"),
         monthsShort : "кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш".split("_"),
         weekdays : "вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун".split("_"),
index 5cd8476..6231a52 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Welsh (cy)
+// moment.js locale configuration
+// locale : Welsh (cy)
 // author : Robert Allen
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang("cy", {
+    return moment.defineLocale("cy", {
         months: "Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),
         monthsShort: "Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),
         weekdays: "Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),
index e06f8c3..9c1c68f 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : danish (da)
+// moment.js locale configuration
+// locale : danish (da)
 // author : Ulrik Nielsen : https://github.com/mrbase
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('da', {
+    return moment.defineLocale('da', {
         months : "januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),
         monthsShort : "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
         weekdays : "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
index 565c12b..48d1b88 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : austrian german (de-at)
+// moment.js locale configuration
+// locale : austrian german (de-at)
 // author : lluchs : https://github.com/lluchs
 // author: Menelion Elensúle: https://github.com/Oire
 // author : Martin Groller : https://github.com/MadMG
@@ -27,7 +27,7 @@
         return withoutSuffix ? format[key][0] : format[key][1];
     }
 
-    return moment.lang('de-at', {
+    return moment.defineLocale('de-at', {
         months : "Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
         monthsShort : "Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
         weekdays : "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),
index 86cd268..0c389f9 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : german (de)
+// moment.js locale configuration
+// locale : german (de)
 // author : lluchs : https://github.com/lluchs
 // author: Menelion Elensúle: https://github.com/Oire
 
@@ -26,7 +26,7 @@
         return withoutSuffix ? format[key][0] : format[key][1];
     }
 
-    return moment.lang('de', {
+    return moment.defineLocale('de', {
         months : "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
         monthsShort : "Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
         weekdays : "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),
index e2a38cd..7f31628 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : modern greek (el)
+// moment.js locale configuration
+// locale : modern greek (el)
 // author : Aggelos Karalias : https://github.com/mehiel
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('el', {
+    return moment.defineLocale('el', {
         monthsNominativeEl : "Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),
         monthsGenitiveEl : "Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),
         months : function (momentToFormat, format) {
@@ -44,7 +44,7 @@
             nextDay : '[Αύριο {}] LT',
             nextWeek : 'dddd [{}] LT',
             lastDay : '[Χθες {}] LT',
-            lastWeek : function() {
+            lastWeek : function () {
                 switch (this.day()) {
                     case 6:
                         return '[το προηγούμενο] dddd [{}] LT';
index 4d91e25..852ecc9 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : australian english (en-au)
+// moment.js locale configuration
+// locale : australian english (en-au)
 
 (function (factory) {
     if (typeof define === 'function' && define.amd) {
@@ -10,7 +10,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('en-au', {
+    return moment.defineLocale('en-au', {
         months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
         monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
         weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
@@ -48,7 +48,7 @@
         },
         ordinal : function (number) {
             var b = number % 10,
-                output = (~~ (number % 100 / 10) === 1) ? 'th' :
+                output = (~~(number % 100 / 10) === 1) ? 'th' :
                 (b === 1) ? 'st' :
                 (b === 2) ? 'nd' :
                 (b === 3) ? 'rd' : 'th';
index a97e9f3..ce253a8 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : canadian english (en-ca)
+// moment.js locale configuration
+// locale : canadian english (en-ca)
 // author : Jonathan Abourbih : https://github.com/jonbca
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('en-ca', {
+    return moment.defineLocale('en-ca', {
         months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
         monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
         weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
@@ -49,7 +49,7 @@
         },
         ordinal : function (number) {
             var b = number % 10,
-                output = (~~ (number % 100 / 10) === 1) ? 'th' :
+                output = (~~(number % 100 / 10) === 1) ? 'th' :
                 (b === 1) ? 'st' :
                 (b === 2) ? 'nd' :
                 (b === 3) ? 'rd' : 'th';
index 3a7907b..14ccbab 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : great britain english (en-gb)
+// moment.js locale configuration
+// locale : great britain english (en-gb)
 // author : Chris Gedrim : https://github.com/chrisgedrim
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('en-gb', {
+    return moment.defineLocale('en-gb', {
         months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
         monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
         weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
@@ -49,7 +49,7 @@
         },
         ordinal : function (number) {
             var b = number % 10,
-                output = (~~ (number % 100 / 10) === 1) ? 'th' :
+                output = (~~(number % 100 / 10) === 1) ? 'th' :
                 (b === 1) ? 'st' :
                 (b === 2) ? 'nd' :
                 (b === 3) ? 'rd' : 'th';
index 03b1abf..318385b 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : esperanto (eo)
+// moment.js locale configuration
+// locale : esperanto (eo)
 // author : Colin Dean : https://github.com/colindean
 // komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
 //          Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
@@ -13,7 +13,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('eo', {
+    return moment.defineLocale('eo', {
         months : "januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),
         monthsShort : "jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),
         weekdays : "Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),
index 67432ca..ed0b564 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : spanish (es)
+// moment.js locale configuration
+// locale : spanish (es)
 // author : Julio Napurí : https://github.com/julionc
 
 (function (factory) {
@@ -14,7 +14,7 @@
     var monthsShortDot = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),
         monthsShort = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");
 
-    return moment.lang('es', {
+    return moment.defineLocale('es', {
         months : "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),
         monthsShort : function (m, format) {
             if (/-MMM-/.test(format)) {
index fb410ef..2241529 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : estonian (et)
+// moment.js locale configuration
+// locale : estonian (et)
 // author : Henry Kehlmann : https://github.com/madhenry
 // improvements : Illimar Tambek : https://github.com/ragulka
 
@@ -31,7 +31,7 @@
         return isFuture ? format[key][0] : format[key][1];
     }
 
-    return moment.lang('et', {
+    return moment.defineLocale('et', {
         months        : "jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),
         monthsShort   : "jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),
         weekdays      : "pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),
index 659b739..fe2dddb 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : euskara (eu)
+// moment.js locale configuration
+// locale : euskara (eu)
 // author : Eneko Illarramendi : https://github.com/eillarra
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('eu', {
+    return moment.defineLocale('eu', {
         months : "urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),
         monthsShort : "urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),
         weekdays : "igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),
index 4a690c4..09c7909 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Persian Language
+// moment.js locale configuration
+// locale : Persian
 // author : Ebrahim Byagowi : https://github.com/ebraminio
 
 (function (factory) {
@@ -35,7 +35,7 @@
         '۰': '0'
     };
 
-    return moment.lang('fa', {
+    return moment.defineLocale('fa', {
         months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
         monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
         weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
index 49f477c..2afc5e8 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : finnish (fi)
+// moment.js locale configuration
+// locale : finnish (fi)
 // author : Tarmo Aidantausta : https://github.com/bleadof
 
 (function (factory) {
     }
 }(function (moment) {
     var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
-        numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
-                          numbersPast[7], numbersPast[8], numbersPast[9]];
+        numbersFuture = [
+            'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
+            numbersPast[7], numbersPast[8], numbersPast[9]
+        ];
 
     function translate(number, withoutSuffix, key, isFuture) {
         var result = "";
@@ -54,7 +56,7 @@
         return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
     }
 
-    return moment.lang('fi', {
+    return moment.defineLocale('fi', {
         months : "tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),
         monthsShort : "tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),
         weekdays : "sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),
index 2f1cbb8..cdc9eda 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : faroese (fo)
+// moment.js locale configuration
+// locale : faroese (fo)
 // author : Ragnar Johannesen : https://github.com/ragnar123
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('fo', {
+    return moment.defineLocale('fo', {
         months : "januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),
         monthsShort : "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
         weekdays : "sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),
index 3280d79..714b11b 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : canadian french (fr-ca)
+// moment.js locale configuration
+// locale : canadian french (fr-ca)
 // author : Jonathan Abourbih : https://github.com/jonbca
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('fr-ca', {
+    return moment.defineLocale('fr-ca', {
         months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
         monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
         weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
index 6b3dc52..106ab11 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : french (fr)
+// moment.js locale configuration
+// locale : french (fr)
 // author : John Fischer : https://github.com/jfroffice
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('fr', {
+    return moment.defineLocale('fr', {
         months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
         monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
         weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
index 8b14127..e82065f 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : galician (gl)
+// moment.js locale configuration
+// locale : galician (gl)
 // author : Juan G. Hurtado : https://github.com/juanghurtado
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('gl', {
+    return moment.defineLocale('gl', {
         months : "Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),
         monthsShort : "Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),
         weekdays : "Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),
index b85dbe8..0af4e09 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Hebrew (he)
+// moment.js locale configuration
+// locale : Hebrew (he)
 // author : Tomer Cohen : https://github.com/tomer
 // author : Moshe Simantov : https://github.com/DevelopmentIL
 // author : Tal Ater : https://github.com/TalAter
@@ -13,7 +13,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('he', {
+    return moment.defineLocale('he', {
         months : "ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),
         monthsShort : "ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),
         weekdays : "ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),
index 8e6e99c..6dd7098 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : hindi (hi)
+// moment.js locale configuration
+// locale : hindi (hi)
 // author : Mayank Singhal : https://github.com/mayanksinghal
 
 (function (factory) {
@@ -36,7 +36,7 @@
         '०': '0'
     };
 
-    return moment.lang('hi', {
+    return moment.defineLocale('hi', {
         months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split("_"),
         monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split("_"),
         weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split("_"),
index 2e3bf11..20fe8c1 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : hrvatski (hr)
+// moment.js locale configuration
+// locale : hrvatski (hr)
 // author : Bojan Marković : https://github.com/bmarkovic
 
 // based on (sl) translation by Robert Sedovšek
@@ -13,7 +13,6 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-
     function translate(number, withoutSuffix, key) {
         var result = number + " ";
         switch (key) {
@@ -67,7 +66,7 @@
         }
     }
 
-    return moment.lang('hr', {
+    return moment.defineLocale('hr', {
         months : "sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),
         monthsShort : "sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),
         weekdays : "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),
index 9833024..910f086 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : hungarian (hu)
+// moment.js locale configuration
+// locale : hungarian (hu)
 // author : Adam Brunner : https://github.com/adambrunner
 
 (function (factory) {
@@ -49,7 +49,7 @@
         return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
     }
 
-    return moment.lang('hu', {
+    return moment.defineLocale('hu', {
         months : "január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),
         monthsShort : "jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),
         weekdays : "vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),
index 951655b..b6984a2 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Armenian (hy-am)
+// moment.js locale configuration
+// locale : Armenian (hy-am)
 // author : Armendarabyan : https://github.com/armendarabyan
 
 (function (factory) {
@@ -11,7 +11,6 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-
     function monthsCaseReplace(m, format) {
         var months = {
             'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'),
@@ -37,7 +36,7 @@
         return weekdays[m.day()];
     }
 
-    return moment.lang('hy-am', {
+    return moment.defineLocale('hy-am', {
         months : monthsCaseReplace,
         monthsShort : monthsShortCaseReplace,
         weekdays : weekdaysCaseReplace,
index f186280..6043f30 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Bahasa Indonesia (id)
+// moment.js locale configuration
+// locale : Bahasa Indonesia (id)
 // author : Mohammad Satrio Utomo : https://github.com/tyok
 // reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
 
@@ -12,7 +12,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('id', {
+    return moment.defineLocale('id', {
         months : "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),
         monthsShort : "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),
         weekdays : "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),
index 5b6b2a8..ed22406 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : icelandic (is)
+// moment.js locale configuration
+// locale : icelandic (is)
 // author : Hinrik Örn Sigurðsson : https://github.com/hinrik
 
 (function (factory) {
@@ -79,7 +79,7 @@
         }
     }
 
-    return moment.lang('is', {
+    return moment.defineLocale('is', {
         months : "janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),
         monthsShort : "jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),
         weekdays : "sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),
index 9c27f66..a151ccc 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : italian (it)
+// moment.js locale configuration
+// locale : italian (it)
 // author : Lorenzo : https://github.com/aliem
 // author: Mattia Larentis: https://github.com/nostalgiaz
 
@@ -12,7 +12,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('it', {
+    return moment.defineLocale('it', {
         months : "gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),
         monthsShort : "gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),
         weekdays : "Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),
index 9cd7e9e..34c4b89 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : japanese (ja)
+// moment.js locale configuration
+// locale : japanese (ja)
 // author : LI Long : https://github.com/baryon
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('ja', {
+    return moment.defineLocale('ja', {
         months : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
         monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
         weekdays : "日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),
index 0cebdaa..3134524 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Georgian (ka)
+// moment.js locale configuration
+// locale : Georgian (ka)
 // author : Irakli Janiashvili : https://github.com/irakli-janiashvili
 
 (function (factory) {
@@ -11,7 +11,6 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-
     function monthsCaseReplace(m, format) {
         var months = {
             'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
@@ -38,7 +37,7 @@
         return weekdays[nounCase][m.day()];
     }
 
-    return moment.lang('ka', {
+    return moment.defineLocale('ka', {
         months : monthsCaseReplace,
         monthsShort : "იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),
         weekdays : weekdaysCaseReplace,
index 0759c8f..f457e8d 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : khmer (km)
+// moment.js locale configuration
+// locale : khmer (km)
 // author : Kruy Vanna : https://github.com/kruyvanna
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('km', {
+    return moment.defineLocale('km', {
         months: "មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),
         monthsShort: "មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),
         weekdays: "អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),
index 3b469df..7de2e51 100644 (file)
@@ -1,7 +1,7 @@
-// moment.js language configuration
-// language : korean (ko)
+// moment.js locale configuration
+// locale : korean (ko)
 //
-// authors 
+// authors
 //
 // - Kyungwook, Park : https://github.com/kyungw00k
 // - Jeeeyul Lee <jeeeyul@gmail.com>
@@ -14,7 +14,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('ko', {
+    return moment.defineLocale('ko', {
         months : "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),
         monthsShort : "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),
         weekdays : "일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),
index 946ba13..c878b79 100644 (file)
@@ -1,6 +1,6 @@
-// moment.js language configuration
-// language : Luxembourgish (lb)
-// author : mweimerskirch : https://github.com/mweimerskirch
+// moment.js locale configuration
+// locale : Luxembourgish (lb)
+// author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
 
 // Note: Luxembourgish has a very particular phonological rule ("Eifeler Regel") that causes the
 // deletion of the final "n" in certain contexts. That's what the "eifelerRegelAppliesToWeekday"
             'm': ['eng Minutt', 'enger Minutt'],
             'h': ['eng Stonn', 'enger Stonn'],
             'd': ['een Dag', 'engem Dag'],
-            'dd': [number + ' Deeg', number + ' Deeg'],
             'M': ['ee Mount', 'engem Mount'],
-            'MM': [number + ' Méint', number + ' Méint'],
-            'y': ['ee Joer', 'engem Joer'],
-            'yy': [number + ' Joer', number + ' Joer']
+            'y': ['ee Joer', 'engem Joer']
         };
         return withoutSuffix ? format[key][0] : format[key][1];
     }
         return "virun " + string;
     }
 
-    function processLastWeek(string1) {
-        var weekday = this.format('d');
-        if (eifelerRegelAppliesToWeekday(weekday)) {
-            return '[Leschte] dddd [um] LT';
-        }
-        return '[Leschten] dddd [um] LT';
-    }
-
-    /**
-     * Returns true if the word before the given week day loses the "-n" ending.
-     * e.g. "Leschten Dënschdeg" but "Leschte Méindeg"
-     *
-     * @param weekday {integer}
-     * @returns {boolean}
-     */
-    function eifelerRegelAppliesToWeekday(weekday) {
-        weekday = parseInt(weekday, 10);
-        switch (weekday) {
-        case 0: // Sonndeg
-        case 1: // Méindeg
-        case 3: // Mëttwoch
-        case 5: // Freideg
-        case 6: // Samschdeg
-            return true;
-        default: // 2 Dënschdeg, 4 Donneschdeg
-            return false;
-        }
-    }
-
     /**
      * Returns true if the word before the given number loses the "-n" ending.
      * e.g. "an 10 Deeg" but "a 5 Deeg"
         }
     }
 
-    return moment.lang('lb', {
+    return moment.defineLocale('lb', {
         months: "Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
         monthsShort: "Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
         weekdays: "Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),
             nextDay: '[Muer um] LT',
             nextWeek: 'dddd [um] LT',
             lastDay: '[Gëschter um] LT',
-            lastWeek: processLastWeek
+            lastWeek: function () {
+                // Different date string for "Dënschdeg" (Tuesday) and "Donneschdeg" (Thursday) due to phonological rule
+                switch (this.day()) {
+                    case 2:
+                    case 4:
+                        return '[Leschten] dddd [um] LT';
+                    default:
+                        return '[Leschte] dddd [um] LT';
+                }
+            }
         },
-        relativeTime: {
-            future: processFutureTime,
-            past: processPastTime,
-            s: "e puer Sekonnen",
-            m: processRelativeTime,
-            mm: "%d Minutten",
-            h: processRelativeTime,
-            hh: "%d Stonnen",
-            d: processRelativeTime,
-            dd: processRelativeTime,
-            M: processRelativeTime,
-            MM: processRelativeTime,
-            y: processRelativeTime,
-            yy: processRelativeTime
+        relativeTime : {
+            future : processFutureTime,
+            past : processPastTime,
+            s : "e puer Sekonnen",
+            m : processRelativeTime,
+            mm : "%d Minutten",
+            h : processRelativeTime,
+            hh : "%d Stonnen",
+            d : processRelativeTime,
+            dd : "%d Deeg",
+            M : processRelativeTime,
+            MM : "%d Méint",
+            y : processRelativeTime,
+            yy : "%d Joer"
         },
         ordinal: '%d.',
         week: {
index 3c11b89..7d7b93f 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Lithuanian (lt)
+// moment.js locale configuration
+// locale : Lithuanian (lt)
 // author : Mindaugas Mozūras : https://github.com/mmozuras
 
 (function (factory) {
@@ -67,8 +67,8 @@
         return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + "į";
     }
 
-    return moment.lang("lt", {
-        months : "sausio_vasario_kovo_balandžio_gegužės_biržėlio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),
+    return moment.defineLocale("lt", {
+        months : "sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),
         monthsShort : "sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),
         weekdays : relativeWeekDay,
         weekdaysShort : "Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),
index ffe25cf..0df007d 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : latvian (lv)
+// moment.js locale configuration
+// locale : latvian (lv)
 // author : Kristaps Karlsons : https://github.com/skakri
 
 (function (factory) {
@@ -32,7 +32,7 @@
         return number + ' ' + format(units[key], number, withoutSuffix);
     }
 
-    return moment.lang('lv', {
+    return moment.defineLocale('lv', {
         months : "janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),
         monthsShort : "jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),
         weekdays : "svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),
index 5f272fa..2d8a739 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : macedonian (mk)
+// moment.js locale configuration
+// locale : macedonian (mk)
 // author : Borislav Mickov : https://github.com/B0k0
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('mk', {
+    return moment.defineLocale('mk', {
         months : "јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),
         monthsShort : "јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),
         weekdays : "недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),
index cc7db9a..d3cee1d 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : malayalam (ml)
+// moment.js locale configuration
+// locale : malayalam (ml)
 // author : Floyd Pink : https://github.com/floydpink
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('ml', {
+    return moment.defineLocale('ml', {
         months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split("_"),
         monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split("_"),
         weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split("_"),
index 0d1adfd..8cbfe7c 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Marathi (mr)
+// moment.js locale configuration
+// locale : Marathi (mr)
 // author : Harshad Kale : https://github.com/kalehv
 
 (function (factory) {
@@ -36,7 +36,7 @@
         '०': '0'
     };
 
-    return moment.lang('mr', {
+    return moment.defineLocale('mr', {
         months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split("_"),
         monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split("_"),
         weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split("_"),
index 501d5aa..eee412f 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Bahasa Malaysia (ms-MY)
+// moment.js locale configuration
+// locale : Bahasa Malaysia (ms-MY)
 // author : Weldan Jamili : https://github.com/weldan
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('ms-my', {
+    return moment.defineLocale('ms-my', {
         months : "Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),
         monthsShort : "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),
         weekdays : "Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),
diff --git a/resources/lib/moment/lang/my.js b/resources/lib/moment/lang/my.js
new file mode 100644 (file)
index 0000000..442d569
--- /dev/null
@@ -0,0 +1,88 @@
+// moment.js locale configuration
+// locale : Burmese (my)
+// author : Squar team, mysquar.com
+
+(function (factory) {
+    if (typeof define === 'function' && define.amd) {
+        define(['moment'], factory); // AMD
+    } else if (typeof exports === 'object') {
+        module.exports = factory(require('../moment')); // Node
+    } else {
+        factory(window.moment); // Browser global
+    }
+}(function (moment) {
+    var symbolMap = {
+        '1': '၁',
+        '2': '၂',
+        '3': '၃',
+        '4': '၄',
+        '5': '၅',
+        '6': '၆',
+        '7': '၇',
+        '8': '၈',
+        '9': '၉',
+        '0': '၀'
+    }, numberMap = {
+        '၁': '1',
+        '၂': '2',
+        '၃': '3',
+        '၄': '4',
+        '၅': '5',
+        '၆': '6',
+        '၇': '7',
+        '၈': '8',
+        '၉': '9',
+        '၀': '0'
+    };
+    return moment.defineLocale('my', {
+        months: "ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),
+        monthsShort: "ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),
+        weekdays: "တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),
+        weekdaysShort: "နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),
+        weekdaysMin: "နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),
+        longDateFormat: {
+            LT: "HH:mm",
+            L: "DD/MM/YYYY",
+            LL: "D MMMM YYYY",
+            LLL: "D MMMM YYYY LT",
+            LLLL: "dddd D MMMM YYYY LT"
+        },
+        calendar: {
+            sameDay: '[ယနေ.] LT [မှာ]',
+            nextDay: '[မနက်ဖြန်] LT [မှာ]',
+            nextWeek: 'dddd LT [မှာ]',
+            lastDay: '[မနေ.က] LT [မှာ]',
+            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
+            sameElse: 'L'
+        },
+        relativeTime: {
+            future: "လာမည့် %s မှာ",
+            past: "လွန်ခဲ့သော %s က",
+            s: "စက္ကန်.အနည်းငယ်",
+            m: "တစ်မိနစ်",
+            mm: "%d မိနစ်",
+            h: "တစ်နာရီ",
+            hh: "%d နာရီ",
+            d: "တစ်ရက်",
+            dd: "%d ရက်",
+            M: "တစ်လ",
+            MM: "%d လ",
+            y: "တစ်နှစ်",
+            yy: "%d နှစ်"
+        },
+        preparse: function (string) {
+            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
+                return numberMap[match];
+            });
+        },
+        postformat: function (string) {
+            return string.replace(/\d/g, function (match) {
+                return symbolMap[match];
+            });
+        },
+        week: {
+            dow: 1, // Monday is the first day of the week.
+            doy: 4 // The week that contains Jan 1st is the first week of the year.
+        }
+    });
+}));
index 2f652ef..5e4a511 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : norwegian bokmål (nb)
+// moment.js locale configuration
+// locale : norwegian bokmål (nb)
 // authors : Espen Hovlandsdal : https://github.com/rexxars
 //           Sigurd Gartmann : https://github.com/sigurdga
 
@@ -12,7 +12,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('nb', {
+    return moment.defineLocale('nb', {
         months : "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
         monthsShort : "jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),
         weekdays : "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
index 1d57b8c..836fb4d 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : nepali/nepalese
+// moment.js locale configuration
+// locale : nepali/nepalese
 // author : suvash : https://github.com/suvash
 
 (function (factory) {
@@ -36,7 +36,7 @@
         '०': '0'
     };
 
-    return moment.lang('ne', {
+    return moment.defineLocale('ne', {
         months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split("_"),
         monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split("_"),
         weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split("_"),
index ffd454f..1577673 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : dutch (nl)
+// moment.js locale configuration
+// locale : dutch (nl)
 // author : Joris Röling : https://github.com/jjupiter
 
 (function (factory) {
@@ -14,7 +14,7 @@
     var monthsShortWithDots = "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),
         monthsShortWithoutDots = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");
 
-    return moment.lang('nl', {
+    return moment.defineLocale('nl', {
         months : "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),
         monthsShort : function (m, format) {
             if (/-MMM-/.test(format)) {
index 8c15108..e479b45 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : norwegian nynorsk (nn)
+// moment.js locale configuration
+// locale : norwegian nynorsk (nn)
 // author : https://github.com/mechuwind
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('nn', {
+    return moment.defineLocale('nn', {
         months : "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
         monthsShort : "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
         weekdays : "sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),
index 97770d2..75e978b 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : polish (pl)
+// moment.js locale configuration
+// locale : polish (pl)
 // author : Rafal Hirsz : https://github.com/evoL
 
 (function (factory) {
@@ -36,7 +36,7 @@
         }
     }
 
-    return moment.lang('pl', {
+    return moment.defineLocale('pl', {
         months : function (momentToFormat, format) {
             if (/D MMMM/.test(format)) {
                 return monthsSubjective[momentToFormat.month()];
index 8f142d1..d577018 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : brazilian portuguese (pt-br)
+// moment.js locale configuration
+// locale : brazilian portuguese (pt-br)
 // author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('pt-br', {
+    return moment.defineLocale('pt-br', {
         months : "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),
         monthsShort : "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),
         weekdays : "domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),
index 3042844..8086414 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : portuguese (pt)
+// moment.js locale configuration
+// locale : portuguese (pt)
 // author : Jefferson : https://github.com/jalex79
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('pt', {
+    return moment.defineLocale('pt', {
         months : "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),
         monthsShort : "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),
         weekdays : "domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),
index fc27509..21a3293 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : romanian (ro)
+// moment.js locale configuration
+// locale : romanian (ro)
 // author : Vlad Gurdiga : https://github.com/gurdiga
 // author : Valentin Agachi : https://github.com/avaly
 
 }(function (moment) {
     function relativeTimeWithPlural(number, withoutSuffix, key) {
         var format = {
-            'mm': 'minute',
-            'hh': 'ore',
-            'dd': 'zile',
-            'MM': 'luni',
-            'yy': 'ani'
-        },
+                'mm': 'minute',
+                'hh': 'ore',
+                'dd': 'zile',
+                'MM': 'luni',
+                'yy': 'ani'
+            },
             separator = ' ';
         if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
             separator = ' de ';
@@ -28,7 +28,7 @@
         return number + separator + format[key];
     }
 
-    return moment.lang('ro', {
+    return moment.defineLocale('ro', {
         months : "ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),
         monthsShort : "ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),
         weekdays : "duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),
index dc013a7..3ae8d23 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : russian (ru)
+// moment.js locale configuration
+// locale : russian (ru)
 // author : Viktorminator : https://github.com/Viktorminator
 // Author : Menelion Elensúle : https://github.com/Oire
 
@@ -72,7 +72,7 @@
         return weekdays[nounCase][m.day()];
     }
 
-    return moment.lang('ru', {
+    return moment.defineLocale('ru', {
         months : monthsCaseReplace,
         monthsShort : monthsShortCaseReplace,
         weekdays : weekdaysCaseReplace,
index ed8a41d..d03fff8 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : slovak (sk)
+// moment.js locale configuration
+// locale : slovak (sk)
 // author : Martin Minka : https://github.com/k2s
 // based on work of petrbela : https://github.com/petrbela
 
@@ -72,7 +72,7 @@
         }
     }
 
-    return moment.lang('sk', {
+    return moment.defineLocale('sk', {
         months : months,
         monthsShort : monthsShort,
         monthsParse : (function (months, monthsShort) {
index d260f80..6174ae6 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : slovenian (sl)
+// moment.js locale configuration
+// locale : slovenian (sl)
 // author : Robert Sedovšek : https://github.com/sedovsek
 
 (function (factory) {
@@ -72,7 +72,7 @@
         }
     }
 
-    return moment.lang('sl', {
+    return moment.defineLocale('sl', {
         months : "januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),
         monthsShort : "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
         weekdays : "nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),
index 0d3cdcf..4a3dfea 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Albanian (sq)
+// moment.js locale configuration
+// locale : Albanian (sq)
 // author : Flakërim Ismani : https://github.com/flakerimi
 // author: Menelion Elensúle: https://github.com/Oire (tests)
 // author : Oerd Cukalla : https://github.com/oerd (fixes)
@@ -13,7 +13,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('sq', {
+    return moment.defineLocale('sq', {
         months : "Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),
         monthsShort : "Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),
         weekdays : "E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),
index ae1754b..ef6e7ce 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Serbian-cyrillic (sr-cyrl)
+// moment.js locale configuration
+// locale : Serbian-cyrillic (sr-cyrl)
 // author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
 
 (function (factory) {
@@ -11,7 +11,6 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-
     var translator = {
         words: { //Different grammatical cases
             m: ['један минут', 'једне минуте'],
@@ -35,7 +34,7 @@
         }
     };
 
-    return moment.lang('sr-cyrl', {
+    return moment.defineLocale('sr-cyrl', {
         months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
         monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
         weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
index 54a5f4f..86e8e84 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Serbian-latin (sr)
+// moment.js locale configuration
+// locale : Serbian-latin (sr)
 // author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
 
 (function (factory) {
@@ -11,7 +11,6 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-
     var translator = {
         words: { //Different grammatical cases
             m: ['jedan minut', 'jedne minute'],
@@ -35,7 +34,7 @@
         }
     };
 
-    return moment.lang('sr', {
+    return moment.defineLocale('sr', {
         months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
         monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
         weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
index 0de8c40..9e39a30 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : swedish (sv)
+// moment.js locale configuration
+// locale : swedish (sv)
 // author : Jens Alm : https://github.com/ulmus
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('sv', {
+    return moment.defineLocale('sv', {
         months : "januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),
         monthsShort : "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
         weekdays : "söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),
@@ -49,7 +49,7 @@
         },
         ordinal : function (number) {
             var b = number % 10,
-                output = (~~ (number % 100 / 10) === 1) ? 'e' :
+                output = (~~(number % 100 / 10) === 1) ? 'e' :
                 (b === 1) ? 'a' :
                 (b === 2) ? 'a' :
                 (b === 3) ? 'e' : 'e';
index cc742c9..963d403 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : tamil (ta)
+// moment.js locale configuration
+// locale : tamil (ta)
 // author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
 
 (function (factory) {
@@ -36,7 +36,7 @@
             '௦': '0'
         }; */
 
-    return moment.lang('ta', {
+    return moment.defineLocale('ta', {
         months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split("_"),
         monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split("_"),
         weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split("_"),
         },
 
 
-// refer http://ta.wikipedia.org/s/1er1      
+        // refer http://ta.wikipedia.org/s/1er1
 
         meridiem : function (hour, minute, isLower) {
             if (hour >= 6 && hour <= 10) {
                 return " காலை";
-            } else   if (hour >= 10 && hour <= 14) {
+            } else if (hour >= 10 && hour <= 14) {
                 return " நண்பகல்";
-            } else    if (hour >= 14 && hour <= 18) {
+            } else if (hour >= 14 && hour <= 18) {
                 return " எற்பாடு";
-            } else   if (hour >= 18 && hour <= 20) {
+            } else if (hour >= 18 && hour <= 20) {
                 return " மாலை";
-            } else  if (hour >= 20 && hour <= 24) {
+            } else if (hour >= 20 && hour <= 24) {
                 return " இரவு";
-            } else  if (hour >= 0 && hour <= 6) {
+            } else if (hour >= 0 && hour <= 6) {
                 return " வைகறை";
             }
         },
index 70336c8..30b41e6 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : thai (th)
+// moment.js locale configuration
+// locale : thai (th)
 // author : Kridsada Thanabulpong : https://github.com/sirn
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('th', {
+    return moment.defineLocale('th', {
         months : "มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),
         monthsShort : "มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),
         weekdays : "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),
index 8044483..dfacf18 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Tagalog/Filipino (tl-ph)
+// moment.js locale configuration
+// locale : Tagalog/Filipino (tl-ph)
 // author : Dan Hagman
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('tl-ph', {
+    return moment.defineLocale('tl-ph', {
         months : "Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),
         monthsShort : "Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),
         weekdays : "Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),
index e90f250..e6c2ada 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : turkish (tr)
+// moment.js locale configuration
+// locale : turkish (tr)
 // authors : Erhan Gundogan : https://github.com/erhangundogan,
 //           Burak Yiğit Kaya: https://github.com/BYK
 
@@ -12,7 +12,6 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-
     var suffixes = {
         1: "'inci",
         5: "'inci",
@@ -39,7 +38,7 @@
         90: "'ıncı"
     };
 
-    return moment.lang('tr', {
+    return moment.defineLocale('tr', {
         months : "Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),
         monthsShort : "Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),
         weekdays : "Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),
index f7e9089..1411e16 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
+// moment.js locale configuration
+// locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
 // author : Abdel Said : https://github.com/abdelsaid
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('tzm-latn', {
+    return moment.defineLocale('tzm-latn', {
         months : "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),
         monthsShort : "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),
         weekdays : "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),
index c7c76bd..615eb97 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : Morocco Central Atlas Tamaziɣt (tzm)
+// moment.js locale configuration
+// locale : Morocco Central Atlas Tamaziɣt (tzm)
 // author : Abdel Said : https://github.com/abdelsaid
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('tzm', {
+    return moment.defineLocale('tzm', {
         months : "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),
         monthsShort : "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),
         weekdays : "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
index 47056cb..f27d9f3 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : ukrainian (uk)
+// moment.js locale configuration
+// locale : ukrainian (uk)
 // author : zemlanin : https://github.com/zemlanin
 // Author : Menelion Elensúle : https://github.com/Oire
 
@@ -71,7 +71,7 @@
         };
     }
 
-    return moment.lang('uk', {
+    return moment.defineLocale('uk', {
         months : monthsCaseReplace,
         monthsShort : "січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),
         weekdays : weekdaysCaseReplace,
index a5b06fa..aeaad63 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : uzbek
+// moment.js locale configuration
+// locale : uzbek
 // author : Sardor Muminov : https://github.com/muminoff
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('uz', {
+    return moment.defineLocale('uz', {
         months : "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),
         monthsShort : "янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),
         weekdays : "Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),
index 94890b0..3f8f5f5 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : vietnamese (vi)
+// moment.js locale configuration
+// locale : vietnamese (vi)
 // author : Bang Nguyen : https://github.com/bangnk
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('vi', {
+    return moment.defineLocale('vi', {
         months : "tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),
         monthsShort : "Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),
         weekdays : "chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),
index 50a3ed9..e73acd7 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : chinese
+// moment.js locale configuration
+// locale : chinese
 // author : suupic : https://github.com/suupic
 // author : Zeno Zeng : https://github.com/zenozeng
 
@@ -12,7 +12,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('zh-cn', {
+    return moment.defineLocale('zh-cn', {
         months : "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
         monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
         weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
index bbb0737..edb1fb9 100644 (file)
@@ -1,5 +1,5 @@
-// moment.js language configuration
-// language : traditional chinese (zh-tw)
+// moment.js locale configuration
+// locale : traditional chinese (zh-tw)
 // author : Ben : https://github.com/ben-lin
 
 (function (factory) {
@@ -11,7 +11,7 @@
         factory(window.moment); // Browser global
     }
 }(function (moment) {
-    return moment.lang('zh-tw', {
+    return moment.defineLocale('zh-tw', {
         months : "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
         monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
         weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
index 83282c6..03a2460 100644 (file)
@@ -1,17 +1,16 @@
 //! moment.js
-//! version : 2.7.0
+//! version : 2.8.1
 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
 //! license : MIT
 //! momentjs.com
 
 (function (undefined) {
-
     /************************************
         Constants
     ************************************/
 
     var moment,
-        VERSION = "2.7.0",
+        VERSION = '2.8.1',
         // the global-scope this is NOT the global object in Node.js
         globalScope = typeof global !== 'undefined' ? global : this,
         oldGlobalMoment,
         SECOND = 5,
         MILLISECOND = 6,
 
-        // internal storage for language config files
-        languages = {},
+        // internal storage for locale config files
+        locales = {},
 
-        // moment internal properties
-        momentProperties = {
-            _isAMomentObject: null,
-            _i : null,
-            _f : null,
-            _l : null,
-            _strict : null,
-            _tzm : null,
-            _isUTC : null,
-            _offset : null,  // optional. Combine with _isUTC
-            _pf : null,
-            _lang : null  // optional
-        },
+        // extra moment internal properties (plugins register props here)
+        momentProperties = [],
 
         // check for nodeJS
         hasModule = (typeof module !== 'undefined' && module.exports),
 
         // default relative time thresholds
         relativeTimeThresholds = {
-          s: 45,   //seconds to minutes
-          m: 45,   //minutes to hours
-          h: 22,   //hours to days
-          dd: 25,  //days to month (month == 1)
-          dm: 45,  //days to months (months > 1)
-          dy: 345  //days to year
+            s: 45,  // seconds to minute
+            m: 45,  // minutes to hour
+            h: 22,  // hours to day
+            d: 26,  // days to month
+            M: 11   // months to year
         },
 
         // tokens to ordinalize and pad
                 return this.month() + 1;
             },
             MMM  : function (format) {
-                return this.lang().monthsShort(this, format);
+                return this.localeData().monthsShort(this, format);
             },
             MMMM : function (format) {
-                return this.lang().months(this, format);
+                return this.localeData().months(this, format);
             },
             D    : function () {
                 return this.date();
                 return this.day();
             },
             dd   : function (format) {
-                return this.lang().weekdaysMin(this, format);
+                return this.localeData().weekdaysMin(this, format);
             },
             ddd  : function (format) {
-                return this.lang().weekdaysShort(this, format);
+                return this.localeData().weekdaysShort(this, format);
             },
             dddd : function (format) {
-                return this.lang().weekdays(this, format);
+                return this.localeData().weekdays(this, format);
             },
             w    : function () {
                 return this.week();
                 return this.isoWeekday();
             },
             a    : function () {
-                return this.lang().meridiem(this.hours(), this.minutes(), true);
+                return this.localeData().meridiem(this.hours(), this.minutes(), true);
             },
             A    : function () {
-                return this.lang().meridiem(this.hours(), this.minutes(), false);
+                return this.localeData().meridiem(this.hours(), this.minutes(), false);
             },
             H    : function () {
                 return this.hours();
             },
             Z    : function () {
                 var a = -this.zone(),
-                    b = "+";
+                    b = '+';
                 if (a < 0) {
                     a = -a;
-                    b = "-";
+                    b = '-';
                 }
-                return b + leftZeroFill(toInt(a / 60), 2) + ":" + leftZeroFill(toInt(a) % 60, 2);
+                return b + leftZeroFill(toInt(a / 60), 2) + ':' + leftZeroFill(toInt(a) % 60, 2);
             },
             ZZ   : function () {
                 var a = -this.zone(),
-                    b = "+";
+                    b = '+';
                 if (a < 0) {
                     a = -a;
-                    b = "-";
+                    b = '-';
                 }
                 return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2);
             },
             }
         },
 
+        deprecations = {},
+
         lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin'];
 
     // Pick the first defined of two or three arguments. dfl comes from
         switch (arguments.length) {
             case 2: return a != null ? a : b;
             case 3: return a != null ? a : b != null ? b : c;
-            default: throw new Error("Implement me");
+            default: throw new Error('Implement me');
         }
     }
 
         };
     }
 
+    function printMsg(msg) {
+        if (moment.suppressDeprecationWarnings === false &&
+                typeof console !== 'undefined' && console.warn) {
+            console.warn("Deprecation warning: " + msg);
+        }
+    }
+
     function deprecate(msg, fn) {
         var firstTime = true;
-        function printMsg() {
-            if (moment.suppressDeprecationWarnings === false &&
-                    typeof console !== 'undefined' && console.warn) {
-                console.warn("Deprecation warning: " + msg);
-            }
-        }
         return extend(function () {
             if (firstTime) {
-                printMsg();
+                printMsg(msg);
                 firstTime = false;
             }
             return fn.apply(this, arguments);
         }, fn);
     }
 
+    function deprecateSimple(name, msg) {
+        if (!deprecations[name]) {
+            printMsg(msg);
+            deprecations[name] = true;
+        }
+    }
+
     function padToken(func, count) {
         return function (a) {
             return leftZeroFill(func.call(this, a), count);
     }
     function ordinalizeToken(func, period) {
         return function (a) {
-            return this.lang().ordinal(func.call(this, a), period);
+            return this.localeData().ordinal(func.call(this, a), period);
         };
     }
 
         Constructors
     ************************************/
 
-    function Language() {
-
+    function Locale() {
     }
 
     // Moment prototype object
-    function Moment(config) {
-        checkOverflow(config);
-        extend(this, config);
+    function Moment(config, skipOverflow) {
+        if (skipOverflow !== false) {
+            checkOverflow(config);
+        }
+        copyConfig(this, config);
+        this._d = new Date(+config._d);
     }
 
     // Duration Constructor
 
         this._data = {};
 
+        this._locale = moment.localeData();
+
         this._bubble();
     }
 
             }
         }
 
-        if (b.hasOwnProperty("toString")) {
+        if (b.hasOwnProperty('toString')) {
             a.toString = b.toString;
         }
 
-        if (b.hasOwnProperty("valueOf")) {
+        if (b.hasOwnProperty('valueOf')) {
             a.valueOf = b.valueOf;
         }
 
         return a;
     }
 
-    function cloneMoment(m) {
-        var result = {}, i;
-        for (i in m) {
-            if (m.hasOwnProperty(i) && momentProperties.hasOwnProperty(i)) {
-                result[i] = m[i];
+    function copyConfig(to, from) {
+        var i, prop, val;
+
+        if (typeof from._isAMomentObject !== 'undefined') {
+            to._isAMomentObject = from._isAMomentObject;
+        }
+        if (typeof from._i !== 'undefined') {
+            to._i = from._i;
+        }
+        if (typeof from._f !== 'undefined') {
+            to._f = from._f;
+        }
+        if (typeof from._l !== 'undefined') {
+            to._l = from._l;
+        }
+        if (typeof from._strict !== 'undefined') {
+            to._strict = from._strict;
+        }
+        if (typeof from._tzm !== 'undefined') {
+            to._tzm = from._tzm;
+        }
+        if (typeof from._isUTC !== 'undefined') {
+            to._isUTC = from._isUTC;
+        }
+        if (typeof from._offset !== 'undefined') {
+            to._offset = from._offset;
+        }
+        if (typeof from._pf !== 'undefined') {
+            to._pf = from._pf;
+        }
+        if (typeof from._locale !== 'undefined') {
+            to._locale = from._locale;
+        }
+
+        if (momentProperties.length > 0) {
+            for (i in momentProperties) {
+                prop = momentProperties[i];
+                val = from[prop];
+                if (typeof val !== 'undefined') {
+                    to[prop] = val;
+                }
             }
         }
 
-        return result;
+        return to;
     }
 
     function absRound(number) {
         return (sign ? (forceSign ? '+' : '') : '-') + output;
     }
 
-    // helper function for _.addTime and _.subtractTime
+    function positiveMomentsDifference(base, other) {
+        var res = {milliseconds: 0, months: 0};
+
+        res.months = other.month() - base.month() +
+            (other.year() - base.year()) * 12;
+        if (base.clone().add(res.months, 'M').isAfter(other)) {
+            --res.months;
+        }
+
+        res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
+
+        return res;
+    }
+
+    function momentsDifference(base, other) {
+        var res;
+        other = makeAs(other, base);
+        if (base.isBefore(other)) {
+            res = positiveMomentsDifference(base, other);
+        } else {
+            res = positiveMomentsDifference(other, base);
+            res.milliseconds = -res.milliseconds;
+            res.months = -res.months;
+        }
+
+        return res;
+    }
+
+    // TODO: remove 'name' arg after deprecation is removed
+    function createAdder(direction, name) {
+        return function (val, period) {
+            var dur, tmp;
+            //invert the arguments, but complain about it
+            if (period !== null && !isNaN(+period)) {
+                deprecateSimple(name, "moment()." + name  + "(period, number) is deprecated. Please use moment()." + name + "(number, period).");
+                tmp = val; val = period; period = tmp;
+            }
+
+            val = typeof val === 'string' ? +val : val;
+            dur = moment.duration(val, period);
+            addOrSubtractDurationFromMoment(this, dur, direction);
+            return this;
+        };
+    }
+
     function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) {
         var milliseconds = duration._milliseconds,
             days = duration._days,
     }
 
     function isDate(input) {
-        return  Object.prototype.toString.call(input) === '[object Date]' ||
-                input instanceof Date;
+        return Object.prototype.toString.call(input) === '[object Date]' ||
+            input instanceof Date;
     }
 
     // compare two arrays, return the number of differences
 
         moment[field] = function (format, index) {
             var i, getter,
-                method = moment.fn._lang[field],
+                method = moment._locale[field],
                 results = [];
 
             if (typeof format === 'number') {
 
             getter = function (i) {
                 var m = moment().utc().set(setter, i);
-                return method.call(moment.fn._lang, m, format || '');
+                return method.call(moment._locale, m, format || '');
             };
 
             if (index != null) {
         return m._isValid;
     }
 
-    function normalizeLanguage(key) {
+    function normalizeLocale(key) {
         return key ? key.toLowerCase().replace('_', '-') : key;
     }
 
+    // pick the locale from the array
+    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
+    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
+    function chooseLocale(names) {
+        var i = 0, j, next, locale, split;
+
+        while (i < names.length) {
+            split = normalizeLocale(names[i]).split('-');
+            j = split.length;
+            next = normalizeLocale(names[i + 1]);
+            next = next ? next.split('-') : null;
+            while (j > 0) {
+                locale = loadLocale(split.slice(0, j).join('-'));
+                if (locale) {
+                    return locale;
+                }
+                if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
+                    //the next array item is better than a shallower substring of this one
+                    break;
+                }
+                j--;
+            }
+            i++;
+        }
+        return null;
+    }
+
+    function loadLocale(name) {
+        var oldLocale = null;
+        if (!locales[name] && hasModule) {
+            try {
+                oldLocale = moment.locale();
+                require('./locale/' + name);
+                // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales
+                moment.locale(oldLocale);
+            } catch (e) { }
+        }
+        return locales[name];
+    }
+
     // Return a moment from input, that is local/utc/zone equivalent to model.
     function makeAs(input, model) {
         return model._isUTC ? moment(input).zone(model._offset || 0) :
     }
 
     /************************************
-        Languages
+        Locale
     ************************************/
 
 
-    extend(Language.prototype, {
+    extend(Locale.prototype, {
 
         set : function (config) {
             var prop, i;
             }
         },
 
-        _months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
+        _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
         months : function (m) {
             return this._months[m.month()];
         },
 
-        _monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
+        _monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
         monthsShort : function (m) {
             return this._monthsShort[m.month()];
         },
             }
         },
 
-        _weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
+        _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
         weekdays : function (m) {
             return this._weekdays[m.day()];
         },
 
-        _weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
+        _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
         weekdaysShort : function (m) {
             return this._weekdaysShort[m.day()];
         },
 
-        _weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
+        _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
         weekdaysMin : function (m) {
             return this._weekdaysMin[m.day()];
         },
         },
 
         _longDateFormat : {
-            LT : "h:mm A",
-            L : "MM/DD/YYYY",
-            LL : "MMMM D YYYY",
-            LLL : "MMMM D YYYY LT",
-            LLLL : "dddd, MMMM D YYYY LT"
+            LT : 'h:mm A',
+            L : 'MM/DD/YYYY',
+            LL : 'MMMM D, YYYY',
+            LLL : 'MMMM D, YYYY LT',
+            LLLL : 'dddd, MMMM D, YYYY LT'
         },
         longDateFormat : function (key) {
             var output = this._longDateFormat[key];
         },
 
         _relativeTime : {
-            future : "in %s",
-            past : "%s ago",
-            s : "a few seconds",
-            m : "a minute",
-            mm : "%d minutes",
-            h : "an hour",
-            hh : "%d hours",
-            d : "a day",
-            dd : "%d days",
-            M : "a month",
-            MM : "%d months",
-            y : "a year",
-            yy : "%d years"
+            future : 'in %s',
+            past : '%s ago',
+            s : 'a few seconds',
+            m : 'a minute',
+            mm : '%d minutes',
+            h : 'an hour',
+            hh : '%d hours',
+            d : 'a day',
+            dd : '%d days',
+            M : 'a month',
+            MM : '%d months',
+            y : 'a year',
+            yy : '%d years'
         },
+
         relativeTime : function (number, withoutSuffix, string, isFuture) {
             var output = this._relativeTime[string];
             return (typeof output === 'function') ?
                 output(number, withoutSuffix, string, isFuture) :
                 output.replace(/%d/i, number);
         },
+
         pastFuture : function (diff, output) {
             var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
             return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);
         },
 
         ordinal : function (number) {
-            return this._ordinal.replace("%d", number);
+            return this._ordinal.replace('%d', number);
         },
-        _ordinal : "%d",
+        _ordinal : '%d',
 
         preparse : function (string) {
             return string;
         }
     });
 
-    // Loads a language definition into the `languages` cache.  The function
-    // takes a key and optionally values.  If not in the browser and no values
-    // are provided, it will load the language file module.  As a convenience,
-    // this function also returns the language values.
-    function loadLang(key, values) {
-        values.abbr = key;
-        if (!languages[key]) {
-            languages[key] = new Language();
-        }
-        languages[key].set(values);
-        return languages[key];
-    }
-
-    // Remove a language from the `languages` cache. Mostly useful in tests.
-    function unloadLang(key) {
-        delete languages[key];
-    }
-
-    // Determines which language definition to use and returns it.
-    //
-    // With no parameters, it will return the global language.  If you
-    // pass in a language key, such as 'en', it will return the
-    // definition for 'en', so long as 'en' has already been loaded using
-    // moment.lang.
-    function getLangDefinition(key) {
-        var i = 0, j, lang, next, split,
-            get = function (k) {
-                if (!languages[k] && hasModule) {
-                    try {
-                        require('./lang/' + k);
-                    } catch (e) { }
-                }
-                return languages[k];
-            };
-
-        if (!key) {
-            return moment.fn._lang;
-        }
-
-        if (!isArray(key)) {
-            //short-circuit everything else
-            lang = get(key);
-            if (lang) {
-                return lang;
-            }
-            key = [key];
-        }
-
-        //pick the language from the array
-        //try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
-        //substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
-        while (i < key.length) {
-            split = normalizeLanguage(key[i]).split('-');
-            j = split.length;
-            next = normalizeLanguage(key[i + 1]);
-            next = next ? next.split('-') : null;
-            while (j > 0) {
-                lang = get(split.slice(0, j).join('-'));
-                if (lang) {
-                    return lang;
-                }
-                if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
-                    //the next array item is better than a shallower substring of this one
-                    break;
-                }
-                j--;
-            }
-            i++;
-        }
-        return moment.fn._lang;
-    }
-
     /************************************
         Formatting
     ************************************/
 
     function removeFormattingTokens(input) {
         if (input.match(/\[[\s\S]/)) {
-            return input.replace(/^\[|\]$/g, "");
+            return input.replace(/^\[|\]$/g, '');
         }
-        return input.replace(/\\/g, "");
+        return input.replace(/\\/g, '');
     }
 
     function makeFormatFunction(format) {
         }
 
         return function (mom) {
-            var output = "";
+            var output = '';
             for (i = 0; i < length; i++) {
                 output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];
             }
 
     // format date using native date object
     function formatMoment(m, format) {
-
         if (!m.isValid()) {
-            return m.lang().invalidDate();
+            return m.localeData().invalidDate();
         }
 
-        format = expandFormat(format, m.lang());
+        format = expandFormat(format, m.localeData());
 
         if (!formatFunctions[format]) {
             formatFunctions[format] = makeFormatFunction(format);
         return formatFunctions[format](m);
     }
 
-    function expandFormat(format, lang) {
+    function expandFormat(format, locale) {
         var i = 5;
 
         function replaceLongDateFormatTokens(input) {
-            return lang.longDateFormat(input) || input;
+            return locale.longDateFormat(input) || input;
         }
 
         localFormattingTokens.lastIndex = 0;
         case 'ggggg':
             return strict ? parseTokenSixDigits : parseTokenOneToSixDigits;
         case 'S':
-            if (strict) { return parseTokenOneDigit; }
+            if (strict) {
+                return parseTokenOneDigit;
+            }
             /* falls through */
         case 'SS':
-            if (strict) { return parseTokenTwoDigits; }
+            if (strict) {
+                return parseTokenTwoDigits;
+            }
             /* falls through */
         case 'SSS':
-            if (strict) { return parseTokenThreeDigits; }
+            if (strict) {
+                return parseTokenThreeDigits;
+            }
             /* falls through */
         case 'DDD':
             return parseTokenOneToThreeDigits;
             return parseTokenWord;
         case 'a':
         case 'A':
-            return getLangDefinition(config._l)._meridiemParse;
+            return config._locale._meridiemParse;
         case 'X':
             return parseTokenTimestampMs;
         case 'Z':
         case 'Do':
             return parseTokenOrdinal;
         default :
-            a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), "i"));
+            a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i'));
             return a;
         }
     }
 
     function timezoneMinutesFromString(string) {
-        string = string || "";
+        string = string || '';
         var possibleTzMatches = (string.match(parseTokenTimezone) || []),
             tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [],
             parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0],
             break;
         case 'MMM' : // fall through to MMMM
         case 'MMMM' :
-            a = getLangDefinition(config._l).monthsParse(input);
+            a = config._locale.monthsParse(input);
             // if we didn't find a month name, mark the date as invalid.
             if (a != null) {
                 datePartArray[MONTH] = a;
         // AM / PM
         case 'a' : // fall through to A
         case 'A' :
-            config._isPm = getLangDefinition(config._l).isPM(input);
+            config._isPm = config._locale.isPM(input);
             break;
         // 24 HOUR
         case 'H' : // fall through to hh
         case 'dd':
         case 'ddd':
         case 'dddd':
-            a = getLangDefinition(config._l).weekdaysParse(input);
+            a = config._locale.weekdaysParse(input);
             // if we didn't get a weekday name, mark the date as invalid
             if (a != null) {
                 config._w = config._w || {};
     }
 
     function dayOfYearFromWeekInfo(config) {
-        var w, weekYear, week, weekday, dow, doy, temp, lang;
+        var w, weekYear, week, weekday, dow, doy, temp;
 
         w = config._w;
         if (w.GG != null || w.W != null || w.E != null) {
             week = dfl(w.W, 1);
             weekday = dfl(w.E, 1);
         } else {
-            lang = getLangDefinition(config._l);
-            dow = lang._week.dow;
-            doy = lang._week.doy;
+            dow = config._locale._week.dow;
+            doy = config._locale._week.doy;
 
             weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year);
             week = dfl(w.w, 1);
 
     // date from string and format string
     function makeDateFromStringAndFormat(config) {
-
         if (config._f === moment.ISO_8601) {
             parseISO(config);
             return;
         config._pf.empty = true;
 
         // This array is used to make a Date, either with `new Date` or `Date.UTC`
-        var lang = getLangDefinition(config._l),
-            string = '' + config._i,
+        var string = '' + config._i,
             i, parsedInput, tokens, token, skipped,
             stringLength = string.length,
             totalParsedInputLength = 0;
 
-        tokens = expandFormat(config._f, lang).match(formattingTokens) || [];
+        tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
 
         for (i = 0; i < tokens.length; i++) {
             token = tokens[i];
 
         for (i = 0; i < config._f.length; i++) {
             currentScore = 0;
-            tempConfig = extend({}, config);
+            tempConfig = copyConfig({}, config);
             tempConfig._pf = defaultParsingFlags();
             tempConfig._f = config._f[i];
             makeDateFromStringAndFormat(tempConfig);
             for (i = 0, l = isoDates.length; i < l; i++) {
                 if (isoDates[i][1].exec(string)) {
                     // match[5] should be "T" or undefined
-                    config._f = isoDates[i][0] + (match[6] || " ");
+                    config._f = isoDates[i][0] + (match[6] || ' ');
                     break;
                 }
             }
                 }
             }
             if (string.match(parseTokenTimezone)) {
-                config._f += "Z";
+                config._f += 'Z';
             }
             makeDateFromStringAndFormat(config);
         } else {
     }
 
     function makeDateFromInput(config) {
-        var input = config._i,
-            matched = aspNetJsonRegex.exec(input);
-
+        var input = config._i, matched;
         if (input === undefined) {
             config._d = new Date();
-        } else if (matched) {
+        } else if (isDate(input)) {
+            config._d = new Date(+input);
+        } else if ((matched = aspNetJsonRegex.exec(input)) !== null) {
             config._d = new Date(+matched[1]);
         } else if (typeof input === 'string') {
             makeDateFromString(config);
         } else if (isArray(input)) {
             config._a = input.slice(0);
             dateFromConfig(config);
-        } else if (isDate(input)) {
-            config._d = new Date(+input);
         } else if (typeof(input) === 'object') {
             dateFromObject(config);
         } else if (typeof(input) === 'number') {
         return date;
     }
 
-    function parseWeekday(input, language) {
+    function parseWeekday(input, locale) {
         if (typeof input === 'string') {
             if (!isNaN(input)) {
                 input = parseInt(input, 10);
             }
             else {
-                input = language.weekdaysParse(input);
+                input = locale.weekdaysParse(input);
                 if (typeof input !== 'number') {
                     return null;
                 }
 
 
     // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
-    function substituteTimeAgo(string, number, withoutSuffix, isFuture, lang) {
-        return lang.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
+    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
+        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
     }
 
-    function relativeTime(milliseconds, withoutSuffix, lang) {
-        var seconds = round(Math.abs(milliseconds) / 1000),
-            minutes = round(seconds / 60),
-            hours = round(minutes / 60),
-            days = round(hours / 24),
-            years = round(days / 365),
-            args = seconds < relativeTimeThresholds.s  && ['s', seconds] ||
+    function relativeTime(posNegDuration, withoutSuffix, locale) {
+        var duration = moment.duration(posNegDuration).abs(),
+            seconds = round(duration.as('s')),
+            minutes = round(duration.as('m')),
+            hours = round(duration.as('h')),
+            days = round(duration.as('d')),
+            months = round(duration.as('M')),
+            years = round(duration.as('y')),
+
+            args = seconds < relativeTimeThresholds.s && ['s', seconds] ||
                 minutes === 1 && ['m'] ||
                 minutes < relativeTimeThresholds.m && ['mm', minutes] ||
                 hours === 1 && ['h'] ||
                 hours < relativeTimeThresholds.h && ['hh', hours] ||
                 days === 1 && ['d'] ||
-                days <= relativeTimeThresholds.dd && ['dd', days] ||
-                days <= relativeTimeThresholds.dm && ['M'] ||
-                days < relativeTimeThresholds.dy && ['MM', round(days / 30)] ||
+                days < relativeTimeThresholds.d && ['dd', days] ||
+                months === 1 && ['M'] ||
+                months < relativeTimeThresholds.M && ['MM', months] ||
                 years === 1 && ['y'] || ['yy', years];
+
         args[2] = withoutSuffix;
-        args[3] = milliseconds > 0;
-        args[4] = lang;
+        args[3] = +posNegDuration > 0;
+        args[4] = locale;
         return substituteTimeAgo.apply({}, args);
     }
 
             daysToDayOfWeek += 7;
         }
 
-        adjustedMoment = moment(mom).add('d', daysToDayOfWeek);
+        adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd');
         return {
             week: Math.ceil(adjustedMoment.dayOfYear() / 7),
             year: adjustedMoment.year()
         var input = config._i,
             format = config._f;
 
+        config._locale = config._locale || moment.localeData(config._l);
+
         if (input === null || (format === undefined && input === '')) {
             return moment.invalid({nullInput: true});
         }
 
         if (typeof input === 'string') {
-            config._i = input = getLangDefinition().preparse(input);
+            config._i = input = config._locale.preparse(input);
         }
 
         if (moment.isMoment(input)) {
-            config = cloneMoment(input);
-
-            config._d = new Date(+input._d);
+            return new Moment(input, true);
         } else if (format) {
             if (isArray(format)) {
                 makeDateFromStringAndArray(config);
         return new Moment(config);
     }
 
-    moment = function (input, format, lang, strict) {
+    moment = function (input, format, locale, strict) {
         var c;
 
-        if (typeof(lang) === "boolean") {
-            strict = lang;
-            lang = undefined;
+        if (typeof(locale) === "boolean") {
+            strict = locale;
+            locale = undefined;
         }
         // object construction must be done this way.
         // https://github.com/moment/moment/issues/1423
         c._isAMomentObject = true;
         c._i = input;
         c._f = format;
-        c._l = lang;
+        c._l = locale;
         c._strict = strict;
         c._isUTC = false;
         c._pf = defaultParsingFlags();
     moment.suppressDeprecationWarnings = false;
 
     moment.createFromInputFallback = deprecate(
-            "moment construction falls back to js Date. This is " +
-            "discouraged and will be removed in upcoming major " +
-            "release. Please refer to " +
-            "https://github.com/moment/moment/issues/1407 for more info.",
-            function (config) {
-        config._d = new Date(config._i);
-    });
+        'moment construction falls back to js Date. This is ' +
+        'discouraged and will be removed in upcoming major ' +
+        'release. Please refer to ' +
+        'https://github.com/moment/moment/issues/1407 for more info.',
+        function (config) {
+            config._d = new Date(config._i);
+        }
+    );
 
     // Pick a moment m from moments so that m[fn](other) is true for all
     // other. This relies on the function fn to be transitive.
     };
 
     // creating with utc
-    moment.utc = function (input, format, lang, strict) {
+    moment.utc = function (input, format, locale, strict) {
         var c;
 
-        if (typeof(lang) === "boolean") {
-            strict = lang;
-            lang = undefined;
+        if (typeof(locale) === "boolean") {
+            strict = locale;
+            locale = undefined;
         }
         // object construction must be done this way.
         // https://github.com/moment/moment/issues/1423
         c._isAMomentObject = true;
         c._useUTC = true;
         c._isUTC = true;
-        c._l = lang;
+        c._l = locale;
         c._i = input;
         c._f = format;
         c._strict = strict;
             match = null,
             sign,
             ret,
-            parseIso;
+            parseIso,
+            diffRes;
 
         if (moment.isDuration(input)) {
             duration = {
                 duration.milliseconds = input;
             }
         } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) {
-            sign = (match[1] === "-") ? -1 : 1;
+            sign = (match[1] === '-') ? -1 : 1;
             duration = {
                 y: 0,
                 d: toInt(match[DATE]) * sign,
                 ms: toInt(match[MILLISECOND]) * sign
             };
         } else if (!!(match = isoDurationRegex.exec(input))) {
-            sign = (match[1] === "-") ? -1 : 1;
+            sign = (match[1] === '-') ? -1 : 1;
             parseIso = function (inp) {
                 // We'd normally use ~~inp for this, but unfortunately it also
                 // converts floats to ints.
                 s: parseIso(match[7]),
                 w: parseIso(match[8])
             };
+        } else if (typeof duration === 'object' &&
+                ('from' in duration || 'to' in duration)) {
+            diffRes = momentsDifference(moment(duration.from), moment(duration.to));
+
+            duration = {};
+            duration.ms = diffRes.milliseconds;
+            duration.M = diffRes.months;
         }
 
         ret = new Duration(duration);
 
-        if (moment.isDuration(input) && input.hasOwnProperty('_lang')) {
-            ret._lang = input._lang;
+        if (moment.isDuration(input) && input.hasOwnProperty('_locale')) {
+            ret._locale = input._locale;
         }
 
         return ret;
     moment.updateOffset = function () {};
 
     // This function allows you to set a threshold for relative time strings
-    moment.relativeTimeThreshold = function(threshold, limit) {
-      if (relativeTimeThresholds[threshold] === undefined) {
-        return false;
-      }
-      relativeTimeThresholds[threshold] = limit;
-      return true;
+    moment.relativeTimeThreshold = function (threshold, limit) {
+        if (relativeTimeThresholds[threshold] === undefined) {
+            return false;
+        }
+        if (limit === undefined) {
+            return relativeTimeThresholds[threshold];
+        }
+        relativeTimeThresholds[threshold] = limit;
+        return true;
     };
 
-    // This function will load languages and then set the global language.  If
+    moment.lang = deprecate(
+        "moment.lang is deprecated. Use moment.locale instead.",
+        function (key, value) {
+            return moment.locale(key, value);
+        }
+    );
+
+    // This function will load locale and then set the global locale.  If
     // no arguments are passed in, it will simply return the current global
-    // language key.
-    moment.lang = function (key, values) {
-        var r;
-        if (!key) {
-            return moment.fn._lang._abbr;
-        }
-        if (values) {
-            loadLang(normalizeLanguage(key), values);
-        } else if (values === null) {
-            unloadLang(key);
-            key = 'en';
-        } else if (!languages[key]) {
-            getLangDefinition(key);
-        }
-        r = moment.duration.fn._lang = moment.fn._lang = getLangDefinition(key);
-        return r._abbr;
+    // locale key.
+    moment.locale = function (key, values) {
+        var data;
+        if (key) {
+            if (typeof(values) !== "undefined") {
+                data = moment.defineLocale(key, values);
+            }
+            else {
+                data = moment.localeData(key);
+            }
+
+            if (data) {
+                moment.duration._locale = moment._locale = data;
+            }
+        }
+
+        return moment._locale._abbr;
     };
 
-    // returns language data
-    moment.langData = function (key) {
-        if (key && key._lang && key._lang._abbr) {
-            key = key._lang._abbr;
+    moment.defineLocale = function (name, values) {
+        if (values !== null) {
+            values.abbr = name;
+            if (!locales[name]) {
+                locales[name] = new Locale();
+            }
+            locales[name].set(values);
+
+            // backwards compat for now: also set the locale
+            moment.locale(name);
+
+            return locales[name];
+        } else {
+            // useful for testing
+            delete locales[name];
+            return null;
+        }
+    };
+
+    moment.langData = deprecate(
+        "moment.langData is deprecated. Use moment.localeData instead.",
+        function (key) {
+            return moment.localeData(key);
+        }
+    );
+
+    // returns locale data
+    moment.localeData = function (key) {
+        var locale;
+
+        if (key && key._locale && key._locale._abbr) {
+            key = key._locale._abbr;
+        }
+
+        if (!key) {
+            return moment._locale;
         }
-        return getLangDefinition(key);
+
+        if (!isArray(key)) {
+            //short-circuit everything else
+            locale = loadLocale(key);
+            if (locale) {
+                return locale;
+            }
+            key = [key];
+        }
+
+        return chooseLocale(key);
     };
 
     // compare moment object
         },
 
         toString : function () {
-            return this.clone().lang('en').format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ");
+            return this.clone().locale('en').format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ");
         },
 
         toDate : function () {
         },
 
         isDSTShifted : function () {
-
             if (this._a) {
                 return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0;
             }
             return this._pf.overflow;
         },
 
-        utc : function () {
-            return this.zone(0);
+        utc : function (keepLocalTime) {
+            return this.zone(0, keepLocalTime);
         },
 
-        local : function () {
-            this.zone(0);
-            this._isUTC = false;
+        local : function (keepLocalTime) {
+            if (this._isUTC) {
+                this.zone(0, keepLocalTime);
+                this._isUTC = false;
+
+                if (keepLocalTime) {
+                    this.add(this._d.getTimezoneOffset(), 'm');
+                }
+            }
             return this;
         },
 
         format : function (inputString) {
             var output = formatMoment(this, inputString || moment.defaultFormat);
-            return this.lang().postformat(output);
+            return this.localeData().postformat(output);
         },
 
-        add : function (input, val) {
-            var dur;
-            // switch args to support add('s', 1) and add(1, 's')
-            if (typeof input === 'string' && typeof val === 'string') {
-                dur = moment.duration(isNaN(+val) ? +input : +val, isNaN(+val) ? val : input);
-            } else if (typeof input === 'string') {
-                dur = moment.duration(+val, input);
-            } else {
-                dur = moment.duration(input, val);
-            }
-            addOrSubtractDurationFromMoment(this, dur, 1);
-            return this;
-        },
+        add : createAdder(1, 'add'),
 
-        subtract : function (input, val) {
-            var dur;
-            // switch args to support subtract('s', 1) and subtract(1, 's')
-            if (typeof input === 'string' && typeof val === 'string') {
-                dur = moment.duration(isNaN(+val) ? +input : +val, isNaN(+val) ? val : input);
-            } else if (typeof input === 'string') {
-                dur = moment.duration(+val, input);
-            } else {
-                dur = moment.duration(input, val);
-            }
-            addOrSubtractDurationFromMoment(this, dur, -1);
-            return this;
-        },
+        subtract : createAdder(-1, 'subtract'),
 
         diff : function (input, units, asFloat) {
             var that = makeAs(input, this),
         },
 
         from : function (time, withoutSuffix) {
-            return moment.duration(this.diff(time)).lang(this.lang()._abbr).humanize(!withoutSuffix);
+            return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
         },
 
         fromNow : function (withoutSuffix) {
                     diff < 1 ? 'sameDay' :
                     diff < 2 ? 'nextDay' :
                     diff < 7 ? 'nextWeek' : 'sameElse';
-            return this.format(this.lang().calendar(format, this));
+            return this.format(this.localeData().calendar(format, this));
         },
 
         isLeapYear : function () {
         day : function (input) {
             var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
             if (input != null) {
-                input = parseWeekday(input, this.lang());
-                return this.add({ d : input - day });
+                input = parseWeekday(input, this.localeData());
+                return this.add(input - day, 'd');
             } else {
                 return day;
             }
 
         month : makeAccessor('Month', true),
 
-        startOf: function (units) {
+        startOf : function (units) {
             units = normalizeUnits(units);
             // the following switch intentionally omits break keywords
             // to utilize falling through the cases.
 
         endOf: function (units) {
             units = normalizeUnits(units);
-            return this.startOf(units).add((units === 'isoWeek' ? 'week' : units), 1).subtract('ms', 1);
+            return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
         },
 
         isAfter: function (input, units) {
         },
 
         min: deprecate(
-                 "moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",
+                 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',
                  function (other) {
                      other = moment.apply(null, arguments);
                      return other < this ? this : other;
          ),
 
         max: deprecate(
-                "moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",
+                'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',
                 function (other) {
                     other = moment.apply(null, arguments);
                     return other > this ? this : other;
                 }
         ),
 
-        // keepTime = true means only change the timezone, without affecting
-        // the local hour. So 5:31:26 +0300 --[zone(2, true)]--> 5:31:26 +0200
-        // It is possible that 5:31:26 doesn't exist int zone +0200, so we
-        // adjust the time as needed, to be valid.
+        // keepLocalTime = true means only change the timezone, without
+        // affecting the local hour. So 5:31:26 +0300 --[zone(2, true)]-->
+        // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist int zone
+        // +0200, so we adjust the time as needed, to be valid.
         //
         // Keeping the time actually adds/subtracts (one hour)
         // from the actual represented time. That is why we call updateOffset
         // a second time. In case it wants us to change the offset again
         // _changeInProgress == true case, then we have to adjust, because
         // there is no such time in the given timezone.
-        zone : function (input, keepTime) {
-            var offset = this._offset || 0;
+        zone : function (input, keepLocalTime) {
+            var offset = this._offset || 0,
+                localAdjust;
             if (input != null) {
-                if (typeof input === "string") {
+                if (typeof input === 'string') {
                     input = timezoneMinutesFromString(input);
                 }
                 if (Math.abs(input) < 16) {
                     input = input * 60;
                 }
+                if (!this._isUTC && keepLocalTime) {
+                    localAdjust = this._d.getTimezoneOffset();
+                }
                 this._offset = input;
                 this._isUTC = true;
+                if (localAdjust != null) {
+                    this.subtract(localAdjust, 'm');
+                }
                 if (offset !== input) {
-                    if (!keepTime || this._changeInProgress) {
+                    if (!keepLocalTime || this._changeInProgress) {
                         addOrSubtractDurationFromMoment(this,
                                 moment.duration(offset - input, 'm'), 1, false);
                     } else if (!this._changeInProgress) {
         },
 
         zoneAbbr : function () {
-            return this._isUTC ? "UTC" : "";
+            return this._isUTC ? 'UTC' : '';
         },
 
         zoneName : function () {
-            return this._isUTC ? "Coordinated Universal Time" : "";
+            return this._isUTC ? 'Coordinated Universal Time' : '';
         },
 
         parseZone : function () {
 
         dayOfYear : function (input) {
             var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1;
-            return input == null ? dayOfYear : this.add("d", (input - dayOfYear));
+            return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
         },
 
         quarter : function (input) {
         },
 
         weekYear : function (input) {
-            var year = weekOfYear(this, this.lang()._week.dow, this.lang()._week.doy).year;
-            return input == null ? year : this.add("y", (input - year));
+            var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year;
+            return input == null ? year : this.add((input - year), 'y');
         },
 
         isoWeekYear : function (input) {
             var year = weekOfYear(this, 1, 4).year;
-            return input == null ? year : this.add("y", (input - year));
+            return input == null ? year : this.add((input - year), 'y');
         },
 
         week : function (input) {
-            var week = this.lang().week(this);
-            return input == null ? week : this.add("d", (input - week) * 7);
+            var week = this.localeData().week(this);
+            return input == null ? week : this.add((input - week) * 7, 'd');
         },
 
         isoWeek : function (input) {
             var week = weekOfYear(this, 1, 4).week;
-            return input == null ? week : this.add("d", (input - week) * 7);
+            return input == null ? week : this.add((input - week) * 7, 'd');
         },
 
         weekday : function (input) {
-            var weekday = (this.day() + 7 - this.lang()._week.dow) % 7;
-            return input == null ? weekday : this.add("d", input - weekday);
+            var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
+            return input == null ? weekday : this.add(input - weekday, 'd');
         },
 
         isoWeekday : function (input) {
         },
 
         weeksInYear : function () {
-            var weekInfo = this._lang._week;
+            var weekInfo = this.localeData()._week;
             return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
         },
 
             return this;
         },
 
-        // If passed a language key, it will set the language for this
-        // instance.  Otherwise, it will return the language configuration
+        // If passed a locale key, it will set the locale for this
+        // instance.  Otherwise, it will return the locale configuration
         // variables for this instance.
-        lang : function (key) {
+        locale : function (key) {
             if (key === undefined) {
-                return this._lang;
+                return this._locale._abbr;
             } else {
-                this._lang = getLangDefinition(key);
+                this._locale = moment.localeData(key);
                 return this;
             }
+        },
+
+        lang : deprecate(
+            "moment().lang() is deprecated. Use moment().localeData() instead.",
+            function (key) {
+                if (key === undefined) {
+                    return this.localeData();
+                } else {
+                    this._locale = moment.localeData(key);
+                    return this;
+                }
+            }
+        ),
+
+        localeData : function () {
+            return this._locale;
         }
     });
 
 
         // TODO: Move this out of here!
         if (typeof value === 'string') {
-            value = mom.lang().monthsParse(value);
+            value = mom.localeData().monthsParse(value);
             // TODO: Another silent failure?
             if (typeof value !== 'number') {
                 return mom;
     moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true);
     // moment.fn.month is defined separately
     moment.fn.date = makeAccessor('Date', true);
-    moment.fn.dates = deprecate("dates accessor is deprecated. Use date instead.", makeAccessor('Date', true));
+    moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true));
     moment.fn.year = makeAccessor('FullYear', true);
-    moment.fn.years = deprecate("years accessor is deprecated. Use year instead.", makeAccessor('FullYear', true));
+    moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true));
 
     // add plural methods
     moment.fn.days = moment.fn.day;
     ************************************/
 
 
+    function daysToYears (days) {
+        // 400 years have 146097 days (taking into account leap year rules)
+        return days * 400 / 146097;
+    }
+
+    function yearsToDays (years) {
+        // years * 365 + absRound(years / 4) -
+        //     absRound(years / 100) + absRound(years / 400);
+        return years * 146097 / 400;
+    }
+
     extend(moment.duration.fn = Duration.prototype, {
 
         _bubble : function () {
                 days = this._days,
                 months = this._months,
                 data = this._data,
-                seconds, minutes, hours, years;
+                seconds, minutes, hours, years = 0;
 
             // The following code bubbles up values, see the tests for
             // examples of what that means.
             data.hours = hours % 24;
 
             days += absRound(hours / 24);
-            data.days = days % 30;
 
+            // Accurately convert days to years, assume start from year 0.
+            years = absRound(daysToYears(days));
+            days -= absRound(yearsToDays(years));
+
+            // 30 days to a month
+            // TODO (iskren): Use anchor date (like 1st Jan) to compute this.
             months += absRound(days / 30);
-            data.months = months % 12;
+            days %= 30;
+
+            // 12 months -> 1 year
+            years += absRound(months / 12);
+            months %= 12;
 
-            years = absRound(months / 12);
+            data.days = days;
+            data.months = months;
             data.years = years;
         },
 
+        abs : function () {
+            this._milliseconds = Math.abs(this._milliseconds);
+            this._days = Math.abs(this._days);
+            this._months = Math.abs(this._months);
+
+            this._data.milliseconds = Math.abs(this._data.milliseconds);
+            this._data.seconds = Math.abs(this._data.seconds);
+            this._data.minutes = Math.abs(this._data.minutes);
+            this._data.hours = Math.abs(this._data.hours);
+            this._data.months = Math.abs(this._data.months);
+            this._data.years = Math.abs(this._data.years);
+
+            return this;
+        },
+
         weeks : function () {
             return absRound(this.days() / 7);
         },
         },
 
         humanize : function (withSuffix) {
-            var difference = +this,
-                output = relativeTime(difference, !withSuffix, this.lang());
+            var output = relativeTime(this, !withSuffix, this.localeData());
 
             if (withSuffix) {
-                output = this.lang().pastFuture(difference, output);
+                output = this.localeData().pastFuture(+this, output);
             }
 
-            return this.lang().postformat(output);
+            return this.localeData().postformat(output);
         },
 
         add : function (input, val) {
         },
 
         as : function (units) {
+            var days, months;
             units = normalizeUnits(units);
-            return this['as' + units.charAt(0).toUpperCase() + units.slice(1) + 's']();
+
+            days = this._days + this._milliseconds / 864e5;
+            if (units === 'month' || units === 'year') {
+                months = this._months + daysToYears(days) * 12;
+                return units === 'month' ? months : months / 12;
+            } else {
+                days += yearsToDays(this._months / 12);
+                switch (units) {
+                    case 'week': return days / 7;
+                    case 'day': return days;
+                    case 'hour': return days * 24;
+                    case 'minute': return days * 24 * 60;
+                    case 'second': return days * 24 * 60 * 60;
+                    case 'millisecond': return days * 24 * 60 * 60 * 1000;
+                    default: throw new Error('Unknown unit ' + units);
+                }
+            }
         },
 
         lang : moment.fn.lang,
+        locale : moment.fn.locale,
+
+        toIsoString : deprecate(
+            "toIsoString() is deprecated. Please use toISOString() instead " +
+            "(notice the capitals)",
+            function () {
+                return this.toISOString();
+            }
+        ),
 
-        toIsoString : function () {
+        toISOString : function () {
             // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
             var years = Math.abs(this.years()),
                 months = Math.abs(this.months()),
                 (hours ? hours + 'H' : '') +
                 (minutes ? minutes + 'M' : '') +
                 (seconds ? seconds + 'S' : '');
+        },
+
+        localeData : function () {
+            return this._locale;
         }
     });
 
         };
     }
 
-    function makeDurationAsGetter(name, factor) {
-        moment.duration.fn['as' + name] = function () {
-            return +this / factor;
-        };
-    }
-
     for (i in unitMillisecondFactors) {
         if (unitMillisecondFactors.hasOwnProperty(i)) {
-            makeDurationAsGetter(i, unitMillisecondFactors[i]);
             makeDurationGetter(i.toLowerCase());
         }
     }
 
-    makeDurationAsGetter('Weeks', 6048e5);
+    moment.duration.fn.asMilliseconds = function () {
+        return this.as('ms');
+    };
+    moment.duration.fn.asSeconds = function () {
+        return this.as('s');
+    };
+    moment.duration.fn.asMinutes = function () {
+        return this.as('m');
+    };
+    moment.duration.fn.asHours = function () {
+        return this.as('h');
+    };
+    moment.duration.fn.asDays = function () {
+        return this.as('d');
+    };
+    moment.duration.fn.asWeeks = function () {
+        return this.as('weeks');
+    };
     moment.duration.fn.asMonths = function () {
-        return (+this - this.years() * 31536e6) / 2592e6 + this.years() * 12;
+        return this.as('M');
+    };
+    moment.duration.fn.asYears = function () {
+        return this.as('y');
     };
-
 
     /************************************
-        Default Lang
+        Default Locale
     ************************************/
 
 
-    // Set default language, other languages will inherit from English.
-    moment.lang('en', {
+    // Set default locale, other locale will inherit from English.
+    moment.locale('en', {
         ordinal : function (number) {
             var b = number % 10,
                 output = (toInt(number % 100 / 10) === 1) ? 'th' :
         }
     });
 
-    /* EMBED_LANGUAGES */
+    /* EMBED_LOCALES */
 
     /************************************
         Exposing Moment
         oldGlobalMoment = globalScope.moment;
         if (shouldDeprecate) {
             globalScope.moment = deprecate(
-                    "Accessing Moment through the global scope is " +
-                    "deprecated, and will be removed in an upcoming " +
-                    "release.",
+                    'Accessing Moment through the global scope is ' +
+                    'deprecated, and will be removed in an upcoming ' +
+                    'release.',
                     moment);
         } else {
             globalScope.moment = moment;
     // CommonJS module is defined
     if (hasModule) {
         module.exports = moment;
-    } else if (typeof define === "function" && define.amd) {
-        define("moment", function (require, exports, module) {
+    } else if (typeof define === 'function' && define.amd) {
+        define('moment', function (require, exports, module) {
             if (module.config && module.config() && module.config().noGlobal === true) {
                 // release the global variable
                 globalScope.moment = oldGlobalMoment;
index eb13f59..b01e2cd 100644 (file)
        },
        "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-error": "حدث خطأ",
+       "ooui-dialog-process-dismiss": "أغلق",
        "ooui-dialog-process-retry": "حاول مرة أخرى"
 }
diff --git a/resources/lib/oojs-ui/i18n/arq.json b/resources/lib/oojs-ui/i18n/arq.json
new file mode 100644 (file)
index 0000000..8098781
--- /dev/null
@@ -0,0 +1,16 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bachounda"
+               ]
+       },
+       "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-error": "حاجه ما خدمتش مليح",
+       "ooui-dialog-process-dismiss": "أرفضها",
+       "ooui-dialog-process-retry": "عاود جرب"
+}
index 44247ca..6959191 100644 (file)
@@ -6,9 +6,13 @@
                        "Y-M D"
                ]
        },
-       "ooui-dialog-action-close": "Serriñ",
        "ooui-outline-control-move-down": "Lakaat an elfenn da ziskenn",
        "ooui-outline-control-move-up": "Lakaat an elfenn da bignat",
        "ooui-outline-control-remove": "Tennañ an elfenn",
-       "ooui-toolbar-more": "Muioc'h"
+       "ooui-toolbar-more": "Muioc'h",
+       "ooui-dialog-message-accept": "Mat eo",
+       "ooui-dialog-message-reject": "Nullañ",
+       "ooui-dialog-process-error": "Un dra bennak a-dreuz a zo bet",
+       "ooui-dialog-process-dismiss": "Disteurel",
+       "ooui-dialog-process-retry": "Klask en-dro"
 }
index fa3089f..cddd46e 100644 (file)
                        "Tifa93"
                ]
        },
-       "ooui-dialog-action-close": "Κλείσιμο",
        "ooui-outline-control-move-down": "Μετακίνηση στοιχείου προς τα κάτω",
        "ooui-outline-control-move-up": "Μετακίνηση στοιχείου προς τα επάνω",
        "ooui-outline-control-remove": "Αφαίρεση στοιχείου",
-       "ooui-toolbar-more": "Περισσότερα"
+       "ooui-toolbar-more": "Περισσότερα",
+       "ooui-dialog-message-accept": "ΟΚ",
+       "ooui-dialog-message-reject": "Ακύρωση",
+       "ooui-dialog-process-error": "Κάτι πήγε στραβά",
+       "ooui-dialog-process-dismiss": "Απόρριψη",
+       "ooui-dialog-process-retry": "Δοκιμάστε ξανά"
 }
index d72b3af..2d8315b 100644 (file)
@@ -6,9 +6,12 @@
                        "The Discoverer"
                ]
        },
-       "ooui-dialog-action-close": "બંધ કરો",
        "ooui-outline-control-move-down": "વસ્તુ નીચે ખસેડો",
        "ooui-outline-control-move-up": "વસ્તુ ઉપર ખસેડો",
        "ooui-outline-control-remove": "વસ્તુ હટાવો",
-       "ooui-toolbar-more": "વધુ"
+       "ooui-toolbar-more": "વધુ",
+       "ooui-dialog-message-accept": "બરાબર",
+       "ooui-dialog-message-reject": "રદ કરો",
+       "ooui-dialog-process-error": "કંઇક ગરબડ થઇ",
+       "ooui-dialog-process-retry": "ફરી પ્રયત્ન કરો"
 }
index f16f984..c3724cf 100644 (file)
@@ -3,12 +3,17 @@
                "authors": [
                        "MaGa",
                        "Roberta F.",
-                       "SpeedyGonsales"
+                       "SpeedyGonsales",
+                       "Zeljko.filipin"
                ]
        },
-       "ooui-dialog-action-close": "zatvori",
        "ooui-outline-control-move-down": "Premjesti stavku dolje",
        "ooui-outline-control-move-up": "Premjesti stavku gore",
        "ooui-outline-control-remove": "Ukloni",
-       "ooui-toolbar-more": "Više mogućnosti"
+       "ooui-toolbar-more": "Više",
+       "ooui-dialog-message-accept": "U redu",
+       "ooui-dialog-message-reject": "Odustani",
+       "ooui-dialog-process-error": "Nešto je pošlo po zlu",
+       "ooui-dialog-process-dismiss": "Zatvori",
+       "ooui-dialog-process-retry": "Pokušajte ponovo"
 }
index 6069625..9117a05 100644 (file)
@@ -13,6 +13,8 @@
        "ooui-outline-control-move-up": "Elem mozgatása felfelé",
        "ooui-outline-control-remove": "Elem eltávolítása",
        "ooui-toolbar-more": "Tovább...",
+       "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Mégse",
+       "ooui-dialog-process-dismiss": "Elrejt",
        "ooui-dialog-process-retry": "Próbáld újra"
 }
index 70c1e07..2ac8dc1 100644 (file)
@@ -4,16 +4,17 @@
                        "Fryed-peach",
                        "Miya",
                        "Penn Station",
-                       "Shirayuki"
+                       "Shirayuki",
+                       "Takot"
                ]
        },
-       "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": "OK",
-       "ooui-dialog-confirm-default-cancel": "キャンセル"
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "キャンセル",
+       "ooui-dialog-process-error": "エラーが発生しました…",
+       "ooui-dialog-process-dismiss": "閉じる",
+       "ooui-dialog-process-retry": "もう一度お試しください"
 }
index 85931f5..0b89e37 100644 (file)
@@ -5,13 +5,13 @@
                        "Nayvik"
                ]
        },
-       "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": "ರದ್ದು",
+       "ooui-dialog-process-error": "ಎನೋ ಎಡವಟ್ಟಾಗಿದೆ....",
+       "ooui-dialog-process-dismiss": "ತೆಗೆದುಹಾಕು",
+       "ooui-dialog-process-retry": "ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ"
 }
index afd8753..56884a8 100644 (file)
@@ -6,16 +6,17 @@
                        "Kwj2772",
                        "LFM",
                        "아라",
-                       "고기랑"
+                       "고기랑",
+                       "Ryuch"
                ]
        },
-       "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": "취소",
+       "ooui-dialog-process-error": "오류가 발생했습니다.",
+       "ooui-dialog-process-dismiss": "숨기기",
+       "ooui-dialog-process-retry": "다시 시도하세요."
 }
index 98b6bce..3fe75e3 100644 (file)
@@ -5,13 +5,15 @@
                        "Event",
                        "Jeblad",
                        "Laaknor",
-                       "Njardarlogar"
+                       "Njardarlogar",
+                       "Jdforrester"
                ]
        },
        "ooui-outline-control-move-down": "Flytt ned",
        "ooui-outline-control-move-up": "Flytt opp",
        "ooui-outline-control-remove": "Fjern element",
        "ooui-toolbar-more": "Mer",
+       "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Avbryt",
        "ooui-dialog-process-error": "Noe gikk galt",
        "ooui-dialog-process-dismiss": "Lukk",
index dbae538..a7b4c08 100644 (file)
                        "Gloria sah"
                ]
        },
-       "ooui-dialog-action-close": "Sluiten",
        "ooui-outline-control-move-down": "Item omlaag verplaatsen",
        "ooui-outline-control-move-up": "Item omhoog verplaatsen",
        "ooui-outline-control-remove": "Item verwijderen",
        "ooui-toolbar-more": "Meer",
-       "ooui-dialog-confirm-title": "Bevestigen",
-       "ooui-dialog-confirm-default-prompt": "Weet u het zeker?",
-       "ooui-dialog-confirm-default-ok": "Oké",
-       "ooui-dialog-confirm-default-cancel": "Annuleren"
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Annuleren",
+       "ooui-dialog-process-error": "Er is iets misgegaan",
+       "ooui-dialog-process-dismiss": "Sluiten",
+       "ooui-dialog-process-retry": "Opnieuw proberen"
 }
index 11aeed4..d6034f0 100644 (file)
                        "Ата"
                ]
        },
-       "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": "Скасувати",
+       "ooui-dialog-process-error": "Щось пішло не так",
+       "ooui-dialog-process-dismiss": "Приховати",
+       "ooui-dialog-process-retry": "Спробуйте ще раз"
 }
diff --git a/resources/lib/oojs-ui/i18n/yue.json b/resources/lib/oojs-ui/i18n/yue.json
new file mode 100644 (file)
index 0000000..81ad9a9
--- /dev/null
@@ -0,0 +1,16 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Deryck Chan"
+               ]
+       },
+       "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-error": "唔對路",
+       "ooui-dialog-process-dismiss": "閂咗佢",
+       "ooui-dialog-process-retry": "再試過"
+}
index 22c3079..a4a4415 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (0e50d2e336)
+ * OOjs UI v0.1.0-pre (51f513f9d3)
  * 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-08-06T12:56:55Z
+ * Date: 2014-08-20T00:59:55Z
  */
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
@@ -51,8 +51,8 @@
 }
 
 .oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 1em;
-  bottom: 1em;
+  top: 0;
+  bottom: 0;
   background-color: #fff;
   -webkit-transform: translate3d(0, -200%, 0);
      -moz-transform: translate3d(0, -200%, 0);
index c53772e..b0b9923 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (0e50d2e336)
+ * OOjs UI v0.1.0-pre (51f513f9d3)
  * 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-08-06T12:56:55Z
+ * Date: 2014-08-20T00:59:55Z
  */
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
index 6f63575..a60c879 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (0e50d2e336)
+ * OOjs UI v0.1.0-pre (51f513f9d3)
  * 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-08-06T12:56:55Z
+ * Date: 2014-08-20T00:59:55Z
  */
 ( function ( OO ) {
 
@@ -1193,7 +1193,9 @@ OO.ui.Frame.static.transplantStyles = function ( parentDoc, frameDoc, timeout )
                                '#' + pollNodeId + ' { font-family: ' + fontFamily + '; }';
                } else {
                        // Not an external stylesheet, or no polling required; just copy the node over
-                       newNode = frameDoc.importNode( styleNode, true );
+                       // Can't use importNode here because that breaks in IE
+                       newNode = frameDoc.createElement( 'style' );
+                       newNode.textContent = styleNode.textContent;
                }
                frameDoc.head.appendChild( newNode );
        }
index aa5e6ac..3db4d99 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (0e50d2e336)
+ * OOjs UI v0.1.0-pre (51f513f9d3)
  * 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-08-06T12:56:55Z
+ * Date: 2014-08-20T00:59:55Z
  */
 /* Textures */
 
   display: block;
   width: 1.5em;
   height: 1.5em;
+  margin-top: -1px;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
index 08ed5d9..3369cde 100644 (file)
@@ -225,7 +225,7 @@ $.suggestions = {
                                                                } else {
                                                                        regionWidth = $region.outerWidth();
                                                                        docWidth = $( document ).width();
-                                                                       if ( ( regionWidth / docWidth  ) > 0.85 ) {
+                                                                       if ( regionWidth > ( 0.85 * docWidth ) ) {
                                                                                // If the input size takes up more than 85% of the document horizontally
                                                                                // expand the suggestions to the writing direction's native end.
                                                                                expandFrom = 'start';
@@ -233,7 +233,7 @@ $.suggestions = {
                                                                                // Calculate the center points of the input and document
                                                                                regionCenter = $region.offset().left + regionWidth / 2;
                                                                                docCenter = docWidth / 2;
-                                                                               if ( Math.abs( regionCenter - docCenter ) / docCenter < 0.10 ) {
+                                                                               if ( Math.abs( regionCenter - docCenter ) < ( 0.10 * docCenter ) ) {
                                                                                        // If the input's center is within 10% of the document center
                                                                                        // use the writing direction's native end.
                                                                                        expandFrom = 'start';
index b46ab37..ea2c5f9 100644 (file)
                        } );
                        // We want to find the row that has the most columns (ignoring colspan)
                        $.each( exploded, function ( index, cellArray ) {
-                               headerCount = $.unique( $( cellArray ) ).length;
+                               headerCount = $( uniqueElements( cellArray ) ).filter( 'th' ).length;
                                if ( headerCount >= maxSeen ) {
                                        maxSeen = headerCount;
                                        longestTR = index;
                                }
                        } );
                        // We cannot use $.unique() here because it sorts into dom order, which is undesirable
-                       $tableHeaders = $( uniqueElements( exploded[longestTR] ) );
+                       $tableHeaders = $( uniqueElements( exploded[longestTR] ) ).filter( 'th' );
                }
 
                // as each header can span over multiple columns (using colspan=N),
index 8a2741d..17bf683 100644 (file)
@@ -40,7 +40,7 @@
 // Text colors
 @colorText: @colorGray2;
 @colorTextLight: @colorGray6;
-@colorButtonText: @colorGray8;
+@colorButtonText: @colorGray5;
 @colorDisabledText: @colorGray12;
 @colorErrorText: #CC0000;
 
diff --git a/resources/src/mediawiki.special/mediawiki.special.import.js b/resources/src/mediawiki.special/mediawiki.special.import.js
new file mode 100644 (file)
index 0000000..a9a985e
--- /dev/null
@@ -0,0 +1,35 @@
+/*!
+ * JavaScript for Special:Import
+ */
+( function ( $ ) {
+       function updateImportSubprojectList() {
+               var $projectField = $( '#mw-import-table-interwiki #interwiki' ),
+                       $subprojectField = $projectField.parent().find( '#subproject' ),
+                       $selected = $projectField.find( ':selected' ),
+                       oldValue = $subprojectField.val(),
+                       option, options;
+
+               if ( $selected.attr( 'data-subprojects' ) ) {
+                       options = $.map( $selected.attr( 'data-subprojects' ).split( ' ' ), function ( el ) {
+                               option = document.createElement( 'option' );
+                               option.appendChild( document.createTextNode( el ) );
+                               option.setAttribute( 'value', el );
+                               if ( oldValue === el ) {
+                                       option.setAttribute( 'selected', 'selected' );
+                               }
+                               return option;
+                       } );
+                       $subprojectField.show().empty().append( options );
+               } else {
+                       $subprojectField.hide();
+               }
+       }
+
+       $( function () {
+               var $projectField = $( '#mw-import-table-interwiki #interwiki' );
+               if ( $projectField.length ) {
+                       $projectField.change( updateImportSubprojectList );
+                       updateImportSubprojectList();
+               }
+       } );
+}( jQuery ) );
index 60cf46a..a4128f9 100644 (file)
                        } );
                } ).trigger( 'change' );
 
+               // When saving settings, use the proper request method (POST instead of GET).
+               $( '#mw-search-powersearch-remember' ).change( function () {
+                       this.form.method = this.checked ? 'post' : 'get';
+               } ).trigger( 'change' );
+
        } );
 
 }( mediaWiki, jQuery ) );
index 6996ab8..0a50e10 100644 (file)
                // Remove focus glow on input[type="search"]
                outline: 0;
        }
+
+       // Remove red outline from inputs which have required field and invalid content.
+       // This is a Firefox only issue
+       // See https://developer.mozilla.org/en-US/docs/Web/CSS/:invalid
+       &:invalid {
+               box-shadow: none;
+       }
 }
 
 textarea.mw-ui-input {
index 9d34d62..3f778d8 100644 (file)
                        } else {
                                $el = $( '<a>' );
                                if ( typeof arg === 'function' ) {
-                                       $el.click( arg ).attr( 'href', '#' );
+                                       $el.attr( 'href', '#' )
+                                       .click( function ( e ) {
+                                               e.preventDefault();
+                                       } )
+                                       .click( arg );
                                } else {
                                        $el.attr( 'href', arg.toString() );
                                }
index 743d651..c1e1dab 100644 (file)
@@ -1,7 +1,7 @@
 /**
  * @class mw.plugin.notify
  */
-( function ( mw, $ ) {
+( function ( mw ) {
        'use strict';
 
        /**
         * @return {jQuery.Promise}
         */
        mw.notify = function ( message, options ) {
-               var d = $.Deferred();
                // Don't bother loading the whole notification system if we never use it.
-               mw.loader.using( 'mediawiki.notification', function () {
-                       // Call notify with the notification the user requested of us.
-                       d.resolve( mw.notification.notify( message, options ) );
-               }, d.reject );
-               return d.promise();
+               return mw.loader.using( 'mediawiki.notification' )
+                       .then( function () {
+                               // Call notify with the notification the user requested of us.
+                               return mw.notification.notify( message, options );
+                       } );
        };
 
        /**
@@ -25,4 +24,4 @@
         * @mixins mw.plugin.notify
         */
 
-}( mediaWiki, jQuery ) );
+}( mediaWiki ) );
index e8dd473..45338ea 100644 (file)
@@ -35,7 +35,7 @@
                if ( $toc.length && $tocTitle.length && $tocList.length && !$tocToggleLink.length ) {
                        hideToc = $.cookie( 'mw_hidetoc' ) === '1';
 
-                       $tocToggleLink = $( '<a href="#" class="internal" id="togglelink"></a>' )
+                       $tocToggleLink = $( '<a href="#" id="togglelink"></a>' )
                                .text( hideToc ? mw.msg( 'showtoc' ) : mw.msg( 'hidetoc' ) )
                                .click( function ( e ) {
                                        e.preventDefault();
diff --git a/skins/README b/skins/README
new file mode 100644 (file)
index 0000000..4145b35
--- /dev/null
@@ -0,0 +1,29 @@
+Skins, such as the default skin Vector, are distributed separately. Drop them
+into this directory and enable as per the skin's installation instructions.
+
+You can find a list of available skins at
+<https://www.mediawiki.org/wiki/Category:All_skins>,
+and more information about installing and configuring skins at
+<https://www.mediawiki.org/wiki/Manual:Skin_configuration>.
+
+If you are a developer, you might want to fetch the skin tree in another
+directory and make a symbolic link:
+
+ mediawiki/skins$ ln -s ../../skins-trunk/FooBar
+
+Most skins are available through Git:
+    https://gerrit.wikimedia.org/r/#/admin/projects/?filter=mediawiki%252Fskins%252F
+    https://git.wikimedia.org/project/mediawiki
+
+
+Please note that under POSIX systems (Linux...), parent of a symbolic path
+refers to the link source, NOT to the target! You should check the env
+variable MW_INSTALL_PATH in case the extension is not in the default location.
+
+The following code snippet lets you override the default path:
+
+ $IP = getenv( 'MW_INSTALL_PATH' );
+ if( $IP === false ) {
+       $IP = __DIR__ . '/../..';
+ }
+ require_once "$IP/maintenance/Maintenance.php"; // a MediaWiki core file
index 4157b55..622afe6 100644 (file)
@@ -129,7 +129,7 @@ div.thumb {
 
 div.thumbinner {
        border: 1px solid #ccc;
-       padding: 3px !important;
+       padding: 3px;
        background-color: #f9f9f9;
        font-size: 94%;
        text-align: center;
@@ -143,30 +143,90 @@ html .thumbimage {
 html .thumbcaption {
        border: none;
        line-height: 1.4em;
-       padding: 3px !important;
+       padding: 3px;
        font-size: 94%;
+       /* Default styles when there's no .mw-content-ltr or .mw-content-rtl, overridden below */
+       text-align: left;
 }
 
 div.magnify {
-       border: none !important;
-       background: none !important;
+       /* Default styles when there's no .mw-content-ltr or .mw-content-rtl, overridden below */
+       float: right;
        margin-left: 3px;
 }
 
-div.magnify a, div.magnify img {
+div.magnify a {
        display: block;
-       border: none !important;
-       background: none !important;
-}
-
-/* @noflip */div.tright {
-       margin: .5em 0 1.3em 1.4em;
+       /* Hide the text… */
+       text-indent: 15px;
+       white-space: nowrap;
+       overflow: hidden;
+       /* …and replace it with the image */
+       width: 15px;
+       height: 11px;
+       /* Default styles when there's no .mw-content-ltr or .mw-content-rtl, overridden below */
+       /* @embed */
+       background: url(images/magnify-clip-ltr.png) center center no-repeat;
+       /* Don't annoy people who copy-paste everything too much */
+       -moz-user-select: none;
+       -webkit-user-select: none;
+       -ms-user-select: none;
+       user-select: none;
 }
 
-/* @noflip */div.tleft {
-       margin: .5em 1.4em 1.3em 0;
+/* Temporary WMF deployment hack, to be removed before 1.24 release */
+div.magnify img {
+       display: none;
 }
 
 img.thumbborder {
        border: 1px solid #dddddd;
 }
+
+/* Directionality-specific styles for thumbnails - their positioning depends on content language */
+
+/* @noflip */
+.mw-content-ltr .thumbcaption {
+       text-align: left;
+}
+
+/* @noflip */
+.mw-content-ltr .magnify {
+       float: right;
+       margin-left: 3px;
+       margin-right: 0;
+}
+
+/* @noflip */
+.mw-content-ltr div.magnify a {
+       /* @embed */
+       background-image: url(images/magnify-clip-ltr.png);
+}
+
+/* @noflip */
+.mw-content-rtl .thumbcaption {
+       text-align: right;
+}
+
+/* @noflip */
+.mw-content-rtl .magnify {
+       float: left;
+       margin-left: 0;
+       margin-right: 3px;
+}
+
+/* @noflip */
+.mw-content-rtl div.magnify a {
+       /* @embed */
+       background-image: url(images/magnify-clip-rtl.png);
+}
+
+/* @noflip */
+div.tright {
+       margin: .5em 0 1.3em 1.4em;
+}
+
+/* @noflip */
+div.tleft {
+       margin: .5em 1.4em 1.3em 0;
+}
diff --git a/skins/common/config-cc.css b/skins/common/config-cc.css
deleted file mode 100644 (file)
index ecd10fa..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Copy of CC standard stylesheet, plus tweaks for iframe usage
- */
-
-body {
-       margin: 0;
-       background: #eee;
-       font-family: Verdana;
-       color: #333;
-}
-
-#main {
-       border: 1px solid #D0D0D0;
-       background: #fff;
-       margin: 0.5em;
-}
-
-/**
- * Looks like you have to specify the width of #menu
- * or IE5 Mac stretches it all the way across the div, and
- * Opera streches it half way.
- */
-
-#main #menu {
-       border-left: 1px dotted #ccc;
-       float: right;
-       width: 230px;
-       background: white;
-       margin: 0 0 10px 10px;
-}
-
-td, h3, p, h1, pre {
-       margin: 0 20px 20px 20px;
-       font-size: 11px;
-       line-height: 140%;
-}
-
-.header {
-       padding-left: 10px;
-       padding-top: 10px;
-}
-
-.nav {
-       padding-left: 10px;
-       padding-bottom: 10px;
-       font-size: 11px;
-       margin-bottom: 16px;
-}
-
-#menu p {
-       font-size: 11px;
-}
-
-.dent {
-       margin-left: 64px;
-}
diff --git a/skins/common/config.css b/skins/common/config.css
deleted file mode 100644 (file)
index 17b2039..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-.env-check {
-       font-size: 90%;
-       margin: 1em 0 1em 2.5em;
-}
-
-.config-section {
-       margin-top: 2em;
-}
-
-.config-block {
-       margin-top: 2em;
-       display: block;
-
-}
-
-.config-block-label {
-       display: block;
-       margin-bottom: .2em;
-}
-
-.config-block-label label, .config-label {
-       font-weight: bold;
-       padding-right: .5em;
-       padding-top: .2em;
-}
-
-.config-block-elements {
-       margin-left: 2em;
-}
-
-.config-block-elements li {
-       list-style: none;
-}
-
-.config-input {
-       clear: left;
-       zoom: 100%; /* IE hack */
-}
-
-.config-page-wrapper {
-       padding: 0.5em;
-}
-
-.config-page-list {
-       float: right;
-       width: 12em;
-       border: 1px solid #aaa;
-       background: #fff;
-       padding: 0.5em;
-       /* 3em left margin to leave space between the list and the page-content */
-       margin: 0.5em 0.5em 0.5em 3.5em;
-}
-
-.config-page {
-       padding: 0.5em 0.5em 0.5em 2em;
-       margin: 0.5em 0.5em 0.5em 0.5em;
-       background: #eee;
-}
-
-.config-submit {
-       clear: left;
-       text-align: center;
-       padding: 1em;
-}
-
-.config-submit input {
-       margin-left: 0.5em;
-       margin-right: 0.5em;
-}
-
-.config-page-disabled {
-       color: #aaa;
-}
-
-.config-error-box {
-       border: 2px solid #f00;
-}
-
-.config-page-current {
-       font-weight: bold;
-}
-
-.config-message {
-       display: list-item;
-       line-height: 1.5em;
-       /* @embed */
-       list-style-image: url(images/bullet.gif);
-       list-style-type: square;
-}
-
-.config-input-text {
-       width: 20em;
-       margin-right: 1em;
-}
-
-.config-input-check {
-       margin-left: 10em;
-}
-
-.config-skins-item {
-       /* Clearfix */
-       clear: left;
-       overflow: hidden;
-}
-
-.config-skins-item .config-input-check {
-       margin-left: 10em;
-       width: 20em;
-       float: left;
-}
-
-.config-skins-item .config-skins-use-as-default {
-       float: left;
-}
-
-.error {
-       color: red;
-       background-color: #fff;
-       font-weight: bold;
-       left: 1em;
-       font-size: 100%;
-}
-
-.config-settings-block {
-       list-style-type: none;
-       list-style-image: none;
-       margin: 0;
-       padding: 0;
-}
-
-.btn-install {
-       font-weight: bold;
-       font-size: 110%;
-       padding: .2em .3em;
-}
-
-.success-message {
-       font-weight: bold;
-       font-size: 110%;
-       color: green;
-}
-
-.success-box {
-       font-size: 130%;
-}
-
-.config-cc-wrapper {
-       clear: left;
-       /* If you change this height, also change it in WebInstallerOptions::submitCC() */
-       height: 54em;
-}
-
-.config-plainlink a {
-       background: none !important;
-       padding: 0 !important;
-}
-
-.config-download-link {
-       font-size: 1.8em;
-       margin-left: 2em;
-}
-
-.config-download-link a {
-       background: url(images/download-32.png) no-repeat center left;
-       padding-left: 40px; /* 32 px for the image (above), plus some breathing room */
-       height: 32px; /* provide enough vertical room for the image */
-       display: inline-block; /* allow the height property (above) to work */
-       line-height: 32px; /* center the text vertically */
-}
-
-#config-live-log {
-       overflow: hidden;
-       min-width: 20em;
-}
diff --git a/skins/common/config.js b/skins/common/config.js
deleted file mode 100644 (file)
index 2886e08..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-( function ( $ ) {
-       $( function () {
-               var $label, labelText;
-
-               function syncText() {
-                       var value = $(this).val()
-                               .replace( /[\[\]\{\}|#<>%+? ]/g, '_' )
-                               .replace( /&/, '&amp;' )
-                               .replace( /__+/g, '_' )
-                               .replace( /^_+/, '' )
-                               .replace( /_+$/, '' );
-                       value = value.substr( 0, 1 ).toUpperCase() + value.substr( 1 );
-                       $label.text( labelText.replace( '$1', value ) );
-               }
-
-               // Set up the help system
-               $( '.mw-help-field-data' )
-                       .hide()
-                       .closest( '.mw-help-field-container' )
-                               .find( '.mw-help-field-hint' )
-                                       .show()
-                                       .click( function () {
-                                               $(this)
-                                                       .closest( '.mw-help-field-container' )
-                                                               .find( '.mw-help-field-data' )
-                                                                       .slideToggle( 'fast' );
-                                       } );
-
-               // Show/hide code for DB-specific options
-               // FIXME: Do we want slow, fast, or even non-animated (instantaneous) showing/hiding here?
-               $( '.dbRadio' ).each( function () {
-                       $( document.getElementById( $(this).attr( 'rel' ) ) ).hide();
-               } );
-               $( document.getElementById( $( '.dbRadio:checked' ).attr( 'rel' ) ) ).show();
-               $( '.dbRadio' ).click( function () {
-                       var $checked = $( '.dbRadio:checked' ),
-                               $wrapper = $( document.getElementById( $checked.attr( 'rel' ) ) );
-                       if ( $wrapper.is( ':hidden' ) ) {
-                               $( '.dbWrapper' ).hide( 'slow' );
-                               $wrapper.show( 'slow' );
-                       }
-               } );
-
-               // Scroll to the bottom of upgrade log
-               $( '#config-live-log' ).children( 'textarea' ).each( function () {
-                       this.scrollTop = this.scrollHeight;
-               } );
-
-               // Show/hide Creative Commons thingy
-               $( '.licenseRadio' ).click( function () {
-                       var $wrapper = $( '#config-cc-wrapper' );
-                       if ( $( '#config__LicenseCode_cc-choose' ).is( ':checked' ) ) {
-                               $wrapper.show( 'slow' );
-                       } else {
-                               $wrapper.hide( 'slow' );
-                       }
-               } );
-
-               // Show/hide random stuff (email, upload)
-               $( '.showHideRadio' ).click( function () {
-                       var $wrapper = $( '#' + $(this).attr( 'rel' ) );
-                       if ( $(this).is( ':checked' ) ) {
-                               $wrapper.show( 'slow' );
-                       } else {
-                               $wrapper.hide( 'slow' );
-                       }
-               } );
-               $( '.hideShowRadio' ).click( function () {
-                       var $wrapper = $( '#' + $(this).attr( 'rel' ) );
-                       if ( $(this).is( ':checked' ) ) {
-                               $wrapper.hide( 'slow' );
-                       } else {
-                               $wrapper.show( 'slow' );
-                       }
-               } );
-
-               // Hide "other" textboxes by default
-               // Should not be done in CSS for javascript disabled compatibility
-               $( '.enabledByOther' ).closest( '.config-block' ).hide();
-
-               // Enable/disable "other" textboxes
-               $( '.enableForOther' ).click( function () {
-                       var $textbox = $( document.getElementById( $(this).attr( 'rel' ) ) );
-                       // FIXME: Ugh, this is ugly
-                       if ( $(this).val() === 'other' ) {
-                               $textbox.removeProp( 'readonly' ).closest( '.config-block' ).slideDown( 'fast' );
-                       } else {
-                               $textbox.prop( 'readonly', true ).closest( '.config-block' ).slideUp( 'fast' );
-                       }
-               } );
-
-               // Synchronize radio button label for sitename with textbox
-               $label = $( 'label[for=config__NamespaceType_site-name]' );
-               labelText = $label.text();
-               $label.text( labelText.replace( '$1', '' ) );
-               $( '#config_wgSitename' ).on( 'keyup change', syncText ).each( syncText );
-
-               // Show/Hide memcached servers when needed
-               $( 'input[name$="config_wgMainCacheType"]' ).change( function () {
-                       var $memc = $( '#config-memcachewrapper' );
-                       if ( $( 'input[name$="config_wgMainCacheType"]:checked' ).val() === 'memcached' ) {
-                               $memc.show( 'slow' );
-                       } else {
-                               $memc.hide( 'slow' );
-                       }
-               } );
-       } );
-}( jQuery ) );
diff --git a/skins/common/images/Arr_.png b/skins/common/images/Arr_.png
deleted file mode 100644 (file)
index bc67a4b..0000000
Binary files a/skins/common/images/Arr_.png and /dev/null differ
diff --git a/skins/common/images/Arr_l.png b/skins/common/images/Arr_l.png
deleted file mode 100644 (file)
index 2246254..0000000
Binary files a/skins/common/images/Arr_l.png and /dev/null differ
diff --git a/skins/common/images/Arr_r.png b/skins/common/images/Arr_r.png
deleted file mode 100644 (file)
index 467a555..0000000
Binary files a/skins/common/images/Arr_r.png and /dev/null differ
diff --git a/skins/common/images/Zoom_sans.gif b/skins/common/images/Zoom_sans.gif
deleted file mode 100644 (file)
index 56a49de..0000000
Binary files a/skins/common/images/Zoom_sans.gif and /dev/null differ
diff --git a/skins/common/images/add.png b/skins/common/images/add.png
deleted file mode 100644 (file)
index 3497423..0000000
Binary files a/skins/common/images/add.png and /dev/null differ
diff --git a/skins/common/images/closewindow.png b/skins/common/images/closewindow.png
deleted file mode 100644 (file)
index 990702e..0000000
Binary files a/skins/common/images/closewindow.png and /dev/null differ
diff --git a/skins/common/images/critical-32.png b/skins/common/images/critical-32.png
deleted file mode 100644 (file)
index 9b38e6a..0000000
Binary files a/skins/common/images/critical-32.png and /dev/null differ
diff --git a/skins/common/images/diffunderline.gif b/skins/common/images/diffunderline.gif
deleted file mode 100644 (file)
index e062c56..0000000
Binary files a/skins/common/images/diffunderline.gif and /dev/null differ
diff --git a/skins/common/images/download-32.png b/skins/common/images/download-32.png
deleted file mode 100644 (file)
index e5b8318..0000000
Binary files a/skins/common/images/download-32.png and /dev/null differ
diff --git a/skins/common/images/info-32.png b/skins/common/images/info-32.png
deleted file mode 100644 (file)
index ab09e1d..0000000
Binary files a/skins/common/images/info-32.png and /dev/null differ
diff --git a/skins/common/images/link_icon.gif b/skins/common/images/link_icon.gif
deleted file mode 100644 (file)
index 168c1a2..0000000
Binary files a/skins/common/images/link_icon.gif and /dev/null differ
diff --git a/skins/common/images/magnify-clip-ltr.png b/skins/common/images/magnify-clip-ltr.png
new file mode 100644 (file)
index 0000000..00a9cee
Binary files /dev/null and b/skins/common/images/magnify-clip-ltr.png differ
diff --git a/skins/common/images/remove.png b/skins/common/images/remove.png
deleted file mode 100644 (file)
index cd03d6d..0000000
Binary files a/skins/common/images/remove.png and /dev/null differ
diff --git a/skins/common/images/tick-32.png b/skins/common/images/tick-32.png
deleted file mode 100644 (file)
index 34cfa9c..0000000
Binary files a/skins/common/images/tick-32.png and /dev/null differ
diff --git a/skins/common/images/tooltip_icon.png b/skins/common/images/tooltip_icon.png
deleted file mode 100644 (file)
index ba5718a..0000000
Binary files a/skins/common/images/tooltip_icon.png and /dev/null differ
diff --git a/skins/common/images/warning-32.png b/skins/common/images/warning-32.png
deleted file mode 100644 (file)
index 0400734..0000000
Binary files a/skins/common/images/warning-32.png and /dev/null differ
index 250f15c..ecd846e 100644 (file)
@@ -86,7 +86,7 @@ div.thumb {
 
 div.thumbinner {
        border: 1px solid #ccc;
-       padding: 3px !important;
+       padding: 3px;
        background-color: #f9f9f9;
        font-size: 94%;
        text-align: center;
@@ -99,24 +99,38 @@ html .thumbimage {
 
 html .thumbcaption {
        border: none;
-       text-align: left;
        line-height: 1.4em;
-       padding: 3px !important;
+       padding: 3px;
        font-size: 94%;
+       text-align: left;
 }
 
 div.magnify {
        float: right;
-       border: none !important;
-       background: none !important;
        margin-left: 3px;
 }
 
-div.magnify a,
-div.magnify img {
+div.magnify a {
        display: block;
-       border: none !important;
-       background: none !important;
+       /* Hide the text… */
+       text-indent: 15px;
+       white-space: nowrap;
+       overflow: hidden;
+       /* …and replace it with the image */
+       width: 15px;
+       height: 11px;
+       /* @embed */
+       background: url(images/magnify-clip-ltr.png) center center no-repeat;
+       /* Don't annoy people who copy-paste everything too much */
+       -moz-user-select: none;
+       -webkit-user-select: none;
+       -ms-user-select: none;
+       user-select: none;
+}
+
+/* Temporary WMF deployment hack, to be removed before 1.24 release */
+div.magnify img {
+       display: none;
 }
 
 /* @noflip */
index 17ec8c6..9aa1e3e 100644 (file)
@@ -298,21 +298,24 @@ input#wpSummary {
 }
 
 /**
- * Image captions
+ * Image captions.
+ *
+ * This is only meant to provide the most basic of styles, visual settings shouldn't be added here.
  */
+
 /* @noflip */
 .mw-content-ltr .thumbcaption {
        text-align: left;
 }
 
 /* @noflip */
-.mw-content-rtl .thumbcaption {
-       text-align: right;
+.mw-content-ltr .magnify {
+       float: right;
 }
 
 /* @noflip */
-.mw-content-ltr .magnify {
-       float: right;
+.mw-content-rtl .thumbcaption {
+       text-align: right;
 }
 
 /* @noflip */
index 0b7c6cf..0078d7e 100644 (file)
@@ -35,6 +35,7 @@ $wgAutoloadClasses += array(
        'TestRecorder' => "$testDir/testHelpers.inc",
        'ITestRecorder' => "$testDir/testHelpers.inc",
        'DjVuSupport' => "$testDir/testHelpers.inc",
+       'TidySupport' => "$testDir/testHelpers.inc",
 
        # tests/phpunit
        'MediaWikiTestCase' => "$testDir/phpunit/MediaWikiTestCase.php",
index e76b9df..2c44150 100644 (file)
@@ -69,6 +69,11 @@ class ParserTest {
         */
        private $djVuSupport;
 
+       /**
+        * @var TidySupport
+        */
+       private $tidySupport;
+
        private $maxFuzzTestLength = 300;
        private $fuzzSeed = 0;
        private $memoryLimit = 50;
@@ -137,6 +142,10 @@ class ParserTest {
                $this->runParsoid = isset( $options['run-parsoid'] );
 
                $this->djVuSupport = new DjVuSupport();
+               $this->tidySupport = new TidySupport();
+               if ( !$this->tidySupport->isEnabled() ) {
+                       echo "Warning: tidy is not installed, skipping some tests\n";
+               }
 
                $this->hooks = array();
                $this->functionHooks = array();
@@ -611,6 +620,13 @@ class ParserTest {
                        $output = $parser->parse( $input, $title, $options, true, true, 1337 );
                        $output->setTOCEnabled( !isset( $opts['notoc'] ) );
                        $out = $output->getText();
+                       if ( isset( $opts['tidy'] ) ) {
+                               if ( !$this->tidySupport->isEnabled() ) {
+                                       return $this->showSkipped();
+                               }
+                               $out = MWTidy::tidy( $out );
+                               $out = preg_replace( '/\s+$/', '', $out);
+                       }
 
                        if ( isset( $opts['showtitle'] ) ) {
                                if ( $output->getTitleText() ) {
@@ -621,20 +637,18 @@ class ParserTest {
                        }
 
                        if ( isset( $opts['ill'] ) ) {
-                               $out = $this->tidy( implode( ' ', $output->getLanguageLinks() ) );
+                               $out = implode( ' ', $output->getLanguageLinks() );
                        } elseif ( isset( $opts['cat'] ) ) {
                                $outputPage = $context->getOutput();
                                $outputPage->addCategoryLinks( $output->getCategories() );
                                $cats = $outputPage->getCategoryLinks();
 
                                if ( isset( $cats['normal'] ) ) {
-                                       $out = $this->tidy( implode( ' ', $cats['normal'] ) );
+                                       $out = implode( ' ', $cats['normal'] );
                                } else {
                                        $out = '';
                                }
                        }
-
-                       $result = $this->tidy( $result );
                }
 
                $this->teardownGlobals();
@@ -770,6 +784,8 @@ class ParserTest {
         * @param string $config
         */
        private function setupGlobals( $opts = '', $config = '' ) {
+               global $IP;
+
                # Find out values for some special options.
                $lang =
                        self::getOptionValue( 'language', $opts, 'en' );
@@ -813,6 +829,7 @@ class ParserTest {
                                ) )
                        ),
                        'wgEnableUploads' => self::getOptionValue( 'wgEnableUploads', $opts, true ),
+                       'wgUploadNavigationUrl' => false,
                        'wgStylePath' => '/skins',
                        'wgSitename' => 'MediaWiki',
                        'wgLanguageCode' => $lang,
@@ -832,7 +849,6 @@ class ParserTest {
                        'wgLocaltimezone' => 'UTC',
                        'wgAllowExternalImages' => self::getOptionValue( 'wgAllowExternalImages', $opts, true ),
                        'wgThumbLimits' => array( self::getOptionValue( 'thumbsize', $opts, 180 ) ),
-                       'wgUseTidy' => false,
                        'wgDefaultLanguageVariant' => $variant,
                        'wgVariantArticlePath' => false,
                        'wgGroupPermissions' => array( '*' => array(
@@ -848,13 +864,22 @@ class ParserTest {
                        'wgLinkHolderBatchSize' => $linkHolderBatchSize,
                        'wgExperimentalHtmlIds' => false,
                        'wgExternalLinkTarget' => false,
-                       'wgAlwaysUseTidy' => false,
                        'wgHtml5' => true,
                        'wgWellFormedXml' => true,
                        'wgAllowMicrodataAttributes' => true,
                        'wgAdaptiveMessageCache' => true,
                        'wgDisableLangConversion' => false,
                        'wgDisableTitleConversion' => false,
+                       // Tidy options.
+                       // We always set 'wgUseTidy' to false when parsing, but certain
+                       // test-running modes still use tidy if available, so ensure
+                       // that the tidy-related options are all set to their defaults.
+                       'wgUseTidy' => false,
+                       'wgAlwaysUseTidy' => false,
+                       'wgDebugTidy' => false,
+                       'wgTidyConf' => $IP . '/includes/tidy.conf',
+                       'wgTidyOpts' => '',
+                       'wgTidyInternal' => $this->tidySupport->isInternal(),
                );
 
                if ( $config ) {
@@ -1564,23 +1589,6 @@ class ParserTest {
                return true;
        }
 
-       /**
-        * Run the "tidy" command on text if the $wgUseTidy
-        * global is true
-        *
-        * @param string $text The text to tidy
-        * @return string
-        */
-       private function tidy( $text ) {
-               global $wgUseTidy;
-
-               if ( $wgUseTidy ) {
-                       $text = MWTidy::tidy( $text );
-               }
-
-               return $text;
-       }
-
        private function wellFormed( $text ) {
                $html =
                        Sanitizer::hackDocType() .
index 62e160b..08637c6 100644 (file)
@@ -46,6 +46,12 @@ Main Page
 blah blah
 !! endarticle
 
+!!article
+Foo
+!!text
+FOO
+!!endarticle
+
 !!article
 Template:Foo
 !!text
@@ -401,6 +407,13 @@ http://fr.wikipedia.org/wiki/🍺
 </p>
 !! end
 
+# Note that the html+tidy output removes the spaces after the <li>,
+# which is a bug (http://sourceforge.net/p/tidy/bugs/945/, etc).
+# This is an issue for all tests with lists.  We intentionally do
+# *not* add html+tidy clauses for these, as we don't want to
+# document/test the broken behavior.  (Parsoid matches the non-tidy
+# output in these cases.)
+
 !! test
 Simple list
 !! wikitext
@@ -757,7 +770,7 @@ Italics and bold: 5-quote opening sequence: (5,2+3)
 parsoid=wt2wt,html2wt
 !! wikitext
 '''''foo'''''
-!! html/*
+!! html
 <p><b><i>foo</i></b>
 </p>
 !! end
@@ -1037,7 +1050,16 @@ parsoid=wt2html,wt2wt
 !''a!!''b
 |''a||''b
 |}
-!! html
+!! html/php+tidy
+<table>
+<tr>
+<th><i>a</i></th>
+<th><i>b</i></th>
+<td><i>a</i></td>
+<td><i>b</i></td>
+</tr>
+</table>
+!! html/parsoid
 <table>
 <tbody><tr><th><i>a</i></th><th><i>b</i></th>
 <td><i>a</i></td><td><i>b</i></td></tr>
@@ -1179,6 +1201,7 @@ Ruby markup (W3C-style)
 </p>
 !! end
 
+# There is a tidy bug here: http://sourceforge.net/p/tidy/bugs/946/
 !! test
 Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
 !! wikitext
@@ -1539,6 +1562,10 @@ b
 a <div>foo</div>
 <p>b
 </p>
+!! html+tidy
+<p>a</p>
+<div>foo</div>
+<p>b</p>
 !! end
 
 !! test
@@ -1551,6 +1578,12 @@ b
 a <blockquote>foo</blockquote>
 <p>b
 </p>
+!! html+tidy
+<p>a</p>
+<blockquote>
+<p>foo</p>
+</blockquote>
+<p>b</p>
 !! end
 
 !! test
@@ -1563,6 +1596,11 @@ b <div>foo</div>
 a <div>foo</div>
 b <div>foo</div>
 
+!! html+tidy
+<p>a</p>
+<div>foo</div>
+<p>b</p>
+<div>foo</div>
 !! end
 
 !! test
@@ -1575,6 +1613,15 @@ b <blockquote>foo</blockquote>
 a <blockquote>foo</blockquote>
 b <blockquote>foo</blockquote>
 
+!! html+tidy
+<p>a</p>
+<blockquote>
+<p>foo</p>
+</blockquote>
+<p>b</p>
+<blockquote>
+<p>foo</p>
+</blockquote>
 !! end
 
 !! test
@@ -1593,6 +1640,13 @@ d e
 </p>
 x <div>foo</div> z
 
+!! html+tidy
+<div>foo</div>
+<p>a</p>
+<p>b c d e</p>
+<p>x</p>
+<div>foo</div>
+<p>z</p>
 !! end
 
 !! test
@@ -1623,9 +1677,20 @@ b
 </p>
 <div>e</div>
 
+!! html+tidy
+<p><br /></p>
+<p>a</p>
+<p>b</p>
+<div>a</div>
+<p>b</p>
+<div>b</div>
+<p>d</p>
+<p><br /></p>
+<div>e</div>
 !! end
 
 ## PHP parser emits output which is broken
+## XXX The parsoid output doesn't match the tidy output.
 !! test
 Unclosed HTML p-tags should be handled properly
 !! wikitext
@@ -1633,6 +1698,11 @@ Unclosed HTML p-tags should be handled properly
 a
 
 b
+!! html/php+tidy
+<div>
+<p>foo&lt;/div&gt;</p>
+<p>a</p>
+b</div>
 !! html/parsoid
 <div data-parsoid='{"stx":"html"}'><p data-parsoid='{"stx":"html", "autoInsertedEnd":true}'>foo</p></div>
 <p>a</p>
@@ -1784,6 +1854,10 @@ Bug 15491: <ins>/<del> in blockquote (2)
 <blockquote>Foo <del>bar</del> <ins>baz</ins> quux
 </blockquote>
 
+!! html+tidy
+<blockquote>
+<p>Foo</p>
+<del>bar</del> <ins>baz</ins> quux</blockquote>
 !! end
 
 !! test
@@ -1909,6 +1983,12 @@ foo
 </pre></div>
 <pre></pre>
 
+!! html+tidy
+<p>a</p>
+<div>
+<pre>
+foo
+</pre></div>
 !! end
 
 !! test
  a
  | b
  | c
-!! html/parsoid
+!! html/php
 <pre>a
 | b
-| c</pre>
+| c
+</pre>
 !!end
 
 !!test
@@ -2506,6 +2587,12 @@ c
 a
  | b
  | c
+!! html/php
+<p>a
+</p>
+<pre>| b
+| c
+</pre>
 !! html/parsoid
 <p>a</p>
 <pre>
@@ -2526,7 +2613,19 @@ a
  c <blockquote> foo </blockquote>
 <pre><span> foo </span>
 </pre>
-!!end
+!! html+tidy
+<p>a</p>
+<p>foo</p>
+<p>b</p>
+<div>foo</div>
+<p>c</p>
+<blockquote>
+<p>foo</p>
+</blockquote>
+<pre>
+<span> foo </span>
+</pre>
+!! end
 
 !!test
 3b. Indent-Pre and block tags (multi-line html)
@@ -2538,6 +2637,12 @@ a
 </pre>
  b <div> foo </div>
 
+!! html+tidy
+<pre>
+a <span>foo</span>
+</pre>
+<p>b</p>
+<div>foo</div>
 !!end
 
 !!test
@@ -2619,6 +2724,18 @@ File:foobar.jpg
                </div></li>
 </ul>
 
+!! html+tidy
+<p>a</p>
+<ul class="gallery mw-gallery-traditional">
+<li class="gallerybox" style="width: 155px">
+<div style="width: 155px">
+<div class="thumb" style="width: 150px;">
+<div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div>
+</div>
+<div class="gallerytext"></div>
+</div>
+</li>
+</ul>
 !!end
 
 !! test
@@ -3390,6 +3507,9 @@ Definition Lists: Nesting: Test 4
 ## The Parsoid team believes the following three test exposes a
 ## bug in the PHP parser.  (Parsoid team thinks the PHP parser is
 ## wrong to close the <dl> after the <dt> containing the <ul>.)
+## It also exposes a "misfeature" in tidy, which doesn't like
+## <dl> tags with a single <dt> child; it converts the <dt> into
+## a <dd> in that case.  (Parsoid leaves the <dt> alone!)
 !! test
 Definition Lists: Mixed Lists: Test 1
 !! wikitext
@@ -3401,6 +3521,22 @@ Definition Lists: Mixed Lists: Test 1
 <li> bar</li></ul></dt></dl>
 <dl><dt> baz</dt></dl></dd></dl>
 
+!! html/php+tidy
+<dl>
+<dd>
+<dl>
+<dd>
+<ul>
+<li>foo</li>
+<li>bar</li>
+</ul>
+</dd>
+</dl>
+<dl>
+<dt>baz</dt>
+</dl>
+</dd>
+</dl>
 !! html/parsoid
 <dl>
 <dd><dl>
@@ -3528,6 +3664,7 @@ Definition Lists: Mixed Lists: Test 10
 # rules regarding dd/dt on the next two tests.  Parsoid is more
 # consistent, and recognizes the shared nesting and keeps the
 # still-open tags around until the nesting is complete.
+# (And tidy again converts <dt> to <dd> before 'bar'.)
 
 !! test
 Definition Lists: Mixed Lists: Test 11
@@ -3540,6 +3677,43 @@ Definition Lists: Mixed Lists: Test 11
 <dl><dt>boo&#160;</dt>
 <dd>baz</dd></dl></li></ol></li></ul></li></ol></li></ul>
 
+!! html/php+tidy
+<ul>
+<li>
+<ol>
+<li>
+<ul>
+<li>
+<ol>
+<li>
+<dl>
+<dt>foo&#160;</dt>
+<dd>
+<ul>
+<li>
+<dl>
+<dd>
+<dl>
+<dt>bar</dt>
+</dl>
+</dd>
+</dl>
+</li>
+</ul>
+</dd>
+</dl>
+<dl>
+<dt>boo&#160;</dt>
+<dd>baz</dd>
+</dl>
+</li>
+</ol>
+</li>
+</ul>
+</li>
+</ol>
+</li>
+</ul>
 !! html/parsoid
 <ul>
 <li>
@@ -3571,6 +3745,7 @@ Definition Lists: Mixed Lists: Test 11
 !! end
 
 
+# Another case where tidy converts a <dt> to a <dd> (but Parsoid doesn't).
 !! test
 Definition Lists: Weird Ones: Test 1
 !! wikitext
@@ -3579,6 +3754,39 @@ Definition Lists: Weird Ones: Test 1
 <ul><li><ol><li><dl><dt> foo&#160;</dt>
 <dd><ul><li><dl><dd><dl><dd><dl><dt><dl><dt> bar (who uses this?)</dt></dl></dd></dl></dd></dl></dd></dl></li></ul></dd></dl></li></ol></li></ul>
 
+!! html/php+tidy
+<ul>
+<li>
+<ol>
+<li>
+<dl>
+<dt>foo&#160;</dt>
+<dd>
+<ul>
+<li>
+<dl>
+<dd>
+<dl>
+<dd>
+<dl>
+<dd>
+<dl>
+<dt>bar (who uses this?)</dt>
+</dl>
+</dd>
+</dl>
+</dd>
+</dl>
+</dd>
+</dl>
+</li>
+</ul>
+</dd>
+</dl>
+</li>
+</ol>
+</li>
+</ul>
 !! html/parsoid
 <ul>
 <li>
@@ -3789,6 +3997,11 @@ External links: with no contents
 [[wikipedia:Foo|Bar]]
 
 [[wikipedia:Foo|<span>Bar</span>]]
+!! html/php
+<p><a rel="nofollow" class="external autonumber" href="http://en.wikipedia.org/wiki/Foo">[1]</a>
+</p><p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo">Bar</a>
+</p><p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo"><span>Bar</span></a>
+</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>
@@ -4374,6 +4587,8 @@ External link containing double-single-quotes with no space separating the url f
 !! html/php
 <p><a rel="nofollow" class="external text" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de <a href="/index.php?title=Museo_Picasso_(Par%C3%ADs)&amp;action=edit&amp;redlink=1" class="new" title="Museo Picasso (París) (page does not exist)">Museo Picasso</a>.</a>
 </p>
+!! html/php+tidy
+<p><a rel="nofollow" class="external text" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de</a> <a href="/index.php?title=Museo_Picasso_(Par%C3%ADs)&amp;action=edit&amp;redlink=1" class="new" title="Museo Picasso (París) (page does not exist)">Museo Picasso</a>.</p>
 !! html/parsoid
 <p><a rel="mw:ExtLink" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de </a><a rel="mw:WikiLink" href="./Museo_Picasso_(París)">Museo Picasso</a><span>.</span></p>
 !! end
@@ -4906,6 +5121,13 @@ Accept "!!" in table data
 {|
 | Foo!! ||
 |}
+!! html
+<table>
+<tr>
+<td> Foo!! </td>
+<td>
+</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>
@@ -5286,6 +5508,14 @@ Table-cell after a comment-only-empty-line
 <!--c1-->
 <!--c2-->| b
 |}
+!! html
+<table>
+<tr>
+<td>a
+</td>
+<td> b
+</td></tr></table>
+
 !! html/parsoid
 <table>
 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'>a</td>
@@ -5312,9 +5542,14 @@ Wikitext table with html-syntax row
 <td>foo</td></tr></tbody></table>
 !! end
 
+## Note that Parsoid output differs from PHP and PHP+tidy here.
+## The lack of <tr> tags in the PHP output is arguably a bug in the
+## PHP parser, which tidy then compounds by fostering the content
+## entirely out of the table.  Parsoid recognizes the table context
+## and generates <tr> and <td> wrappers as needed.  Hopefully nobody
+## depends on PHP's treatment of broken table markup!
 !! test
 Implicit <td> after a |-
-(PHP parser relies on Tidy to add the missing <td> tags)
 !! options
 parsoid=wt2html,wt2wt
 !! wikitext
@@ -5322,15 +5557,23 @@ parsoid=wt2html,wt2wt
 |-
 a
 |}
-!! html
+!! html/php
+<table>
+
+a
+</table>
+
+!! html/php+tidy
+<p>a</p>
+!! html/parsoid
 <table>
 <tr><td>a</td></tr>
 </table>
 !! end
 
+# Again, Parsoid adds implicit <td>s here, PHP and Tidy strip the b out.
 !! test
-Pres should be recognized in an explicit <td> context, but not in an implicit <td> context
-(PHP parser relies on Tidy to add the missing <td> tags)
+<pre> tags should be recognized in an explicit <td> context, but not in an implicit <td> context
 !! options
 parsoid=wt2html,wt2wt
 !! wikitext
@@ -5341,7 +5584,28 @@ parsoid=wt2html,wt2wt
 |-
  b
 |}
-!! html
+!! html/php
+<table>
+
+<tr>
+<td>
+<pre>a
+</pre>
+</td></tr>
+ b
+</table>
+
+!! html/php+tidy
+<p>b</p>
+<table>
+<tr>
+<td>
+<pre>
+a
+</pre></td>
+</tr>
+</table>
+!! html/parsoid
 <table>
 <tbody>
 <tr><td><pre>a</pre></td></tr>
@@ -5350,9 +5614,9 @@ parsoid=wt2html,wt2wt
 </table>
 !! end
 
+# PHP + Tidy strips the list out of the table; Parsoid wraps it.
 !! test
 Lists should be recognized in an implicit <td> context
-(PHP parser relies on Tidy to add the missing <td> tags)
 !! options
 parsoid=wt2html,wt2wt
 !! wikitext
@@ -5360,7 +5624,17 @@ parsoid=wt2html,wt2wt
 |-
 *a
 |}
-!! html
+!! html/php
+<table>
+
+<ul><li>a</li></ul>
+</table>
+
+!! html/php+tidy
+<ul>
+<li>a</li>
+</ul>
+!! html/parsoid
 <table>
 <tr>
 <td><ul>
@@ -5433,15 +5707,26 @@ parsoid=wt2html,wt2wt
 ! foo || bar
 <!-- foo -->  || baz || quux
 |}
+!! html/php
+<table>
+<tr>
+<th> foo </th>
+<th> bar
+</th>
+<td> baz </td>
+<td> quux
+</td></tr></table>
+
 !! html/parsoid
 <table>
-<tbody>
-<tr><th>foo </th><th>bar  </th>
-<td>baz </td>
-<td>quux</td></tr></tbody></table>
+<tbody><tr><th> foo </th><th> bar
+<!-- foo -->  </th><td> baz </td><td> quux</td></tr>
+</tbody></table>
 !! end
 
 
+# PHP throws away the (semi-broken) "foo" class here; Parsoid
+# preserves it.
 !!test
 Parsoid: Recover better from broken table attributes
 !!options
@@ -5451,6 +5736,14 @@ parsoid=wt2html
 | class="bar" |
 foo
 |}
+!!html/php+tidy
+<table>
+<tr>
+<td class="bar">
+<p>foo</p>
+</td>
+</tr>
+</table>
 !!html/parsoid
 <table class="foo">
 <tr>
@@ -6028,6 +6321,8 @@ title=[[Bug462]]
 !! html/php
 <p><strong class="selflink">Bu&#103;462</strong> <strong class="selflink">Bug462</strong>
 </p>
+!! html/php+tidy
+<p><strong class="selflink">Bug462</strong> <strong class="selflink">Bug462</strong></p>
 !! html/parsoid
 <p><a rel="mw:WikiLink" href="./Bug462">Bug462</a> <a rel="mw:WikiLink" href="./Bug462">Bug462</a></p>
 !! end
@@ -6161,6 +6456,9 @@ Purely hash wikilink
 title=[[User:test/123]]
 !! wikitext
 [[#a|b]]
+!! html/php
+<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>
 !! end
@@ -6269,8 +6567,8 @@ Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved
 
 [http://wp.org   ''foo'']
 !! html
-<p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">  bar</a>
-</p><p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">  <i>bar</i></a>
+<p><a href="/wiki/Foo" title="Foo">  bar</a>
+</p><p><a href="/wiki/Foo" title="Foo">  <i>bar</i></a>
 </p><p><a rel="nofollow" class="external text" href="http://wp.org">foo</a>
 </p><p><a rel="nofollow" class="external text" href="http://wp.org"><i>foo</i></a>
 </p>
@@ -6290,6 +6588,9 @@ parsoid
 Link with angle bracket after anchor
 !! wikitext
 [[Foo#<bar>]]
+!! html/php
+<p><a href="/wiki/Foo#.3Cbar.3E" title="Foo">Foo#&lt;bar&gt;</a>
+</p>
 !! html/parsoid
 <p><a rel="mw:WikiLink" href="./Foo#%3Cbar%3E" data-parsoid='{"stx":"simple","a":{"href":"./Foo#%3Cbar%3E"},"sa":{"href":"Foo#&lt;bar>"}}'>Foo#&lt;bar></a></p>
 !! end
@@ -6325,6 +6626,11 @@ Interwiki link encoding conversion (bug 1636)
 <ul><li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteni&#355;a</a></li>
 <li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteni&#355;a</a></li></ul>
 
+!! html+tidy
+<ul>
+<li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
+<li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
+</ul>
 !! end
 
 !! test
@@ -6803,6 +7109,9 @@ Broken br tag sanitization
 !! end
 
 # TODO: Fix html2html mode (bug 51055)!
+# This </br> handling was added as part of bug 50831; but it
+# differs from how PHP+tidy handles this.  We should investigate
+# this.
 !! test
 Parsoid: Broken br tag recognition
 !! options
@@ -6811,6 +7120,9 @@ parsoid=wt2html
 </br>
 
 <br/ >
+!! html/php+tidy
+<p>&lt;/br&gt;</p>
+<p><br /></p>
 !! html/parsoid
 <p><br></p>
 <p><br/></p>
@@ -6938,6 +7250,9 @@ Horizontal ruler -- Supports content following dashes on same line
 !! html
 <hr /> Foo
 
+!! html+tidy
+<hr />
+<p>Foo</p>
 !! end
 
 ###
@@ -7189,6 +7504,12 @@ Multiple list tags generated by templates
 </li>
 </li>
 
+!! html+tidy
+<ul>
+<li>a</li>
+<li>b</li>
+<li>c</li>
+</ul>
 !!end
 
 !!test
@@ -7230,7 +7551,7 @@ Replacing whitespace with tabs still doesn't break the list (gerrit 78327)
 
 !!test
 Test the li-hack
-(Cannot test this with PHP parser since it relies on Tidy for the hack)
+(The PHP parser relies on Tidy for the hack)
 !!options
 parsoid=wt2html,wt2wt
 !! wikitext
@@ -7243,19 +7564,15 @@ parsoid=wt2html,wt2wt
 <li><li>not a li-hack
 </li>
 </ul>
-!! html
+!! html+tidy
 <ul>
-<li> foo</li>
+<li>foo</li>
 <li>li-hack</li>
-<li about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<li>templated li-hack"}}}}]}'>templated li-hack</li>
-<li> <!--foo--> </li>
-<li> li-hack with preceding comments</li>
+<li>templated li-hack</li>
+<li>unsupported li-hack with preceding comments</li>
 </ul>
-
 <ul>
-<li></li>
-<li>not a li-hack
-</li>
+<li>not a li-hack</li>
 </ul>
 !!end
 
@@ -7305,47 +7622,60 @@ parsoid
 
 !! test
 Unbalanced closing block tags break a list
-(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
+(php parser relies on Tidy to fix up)
 !! wikitext
 <div>
 *a</div><div>
 *b</div>
-!! html/parsoid
+!! html+tidy
 <div>
 <ul>
-<li>a
-</li>
-</ul></div><div>
+<li>a</li>
+</ul>
+</div>
+<div>
 <ul>
-<li>b
-</li>
-</ul></div>
+<li>b</li>
+</ul>
+</div>
 !! end
 
+# Parsoid fails this test, but it might be tricky to support properly.
+# See bug 68395.
 !! test
 Unbalanced closing non-block tags don't break a list
-(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
+(php parser relies on Tidy to fix up)
 !! wikitext
 <span>
 *a</span><span>
 *b</span>
+!! html/php+tidy
+<ul>
+<li><span>a</span></li>
+<li><span>b</span></li>
+</ul>
 !! html/parsoid
-<p><span></span>
-</p>
+<span>
 <ul>
 <li>a<span></span>
 </li>
 <li>b
 </li>
 </ul>
+</span>
 !! end
 
 !! test
 Unclosed formatting tags that straddle lists are closed and reopened
-(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
+(php parser relies on Tidy to fix up)
 !! wikitext
 # <s> a
 # b </s>
+!! html/php+tidy
+<ol>
+<li><s>a</s></li>
+<li><s>b</s></li>
+</ol>
 !! html/parsoid
 <ol>
 <li> <s> a </s>
@@ -7355,23 +7685,31 @@ Unclosed formatting tags that straddle lists are closed and reopened
 </ol>
 !! end
 
+# Parsoid fails this test, but it might be tricky to support properly.
+# See bug 68395.
 !!test
 List embedded in a non-block tag
-(Ugly Parsoid output -- worth fixing; Disabled for PHP parser since it relies on Tidy)
+(Ugly Parsoid output -- worth fixing; PHP parser relies on Tidy)
 !! wikitext
 <small>
 * foo
 </small>
+!! html/php+tidy
+<ul>
+<li><small>foo</small></li>
+</ul>
 !! html/parsoid
-<p><small></small></p>
 <small>
 <ul>
 <li> foo</li>
 </ul>
 </small>
-<p><small></small></p>
 !!end
 
+# This is a bug in the PHP parser + tidy combination.
+# (The </tr> tag gets parsed as text and html-escaped by PHP,
+# and then fostered out of the table by tidy.)
+# We believe the Parsoid output to be correct.
 !! test
 Table with missing opening <tr> tag
 !! options
@@ -7381,6 +7719,13 @@ parsoid=wt2html,wt2wt
 <td>foo</td>
 </tr>
 </table>
+!! html/php+tidy
+<p>&lt;/tr&gt;</p>
+<table>
+<tr>
+<td>foo</td>
+</tr>
+</table>
 !! html/parsoid
 <table>
 <tr>
@@ -7837,9 +8182,11 @@ Magic Word: {{PAGENAME}} with metacharacters
 title=[['foo & bar = baz']]
 !! wikitext
 ''{{PAGENAME}}''
-!! html
+!! html/php
 <p><i>&#39;foo &#38; bar &#61; baz&#39;</i>
 </p>
+!! html+tidy
+<p><i>'foo &amp; bar = baz'</i></p>
 !! end
 
 !! test
@@ -7848,9 +8195,11 @@ Magic Word: {{PAGENAME}} with metacharacters (bug 26781)
 title=[[*RFC 1234 http://example.com/]]
 !! wikitext
 {{PAGENAME}}
-!! html
+!! html/php
 <p>&#42;RFC&#32;1234 http&#58;//example.com/
 </p>
+!! html+tidy
+<p>*RFC 1234 http://example.com/</p>
 !! end
 
 !! test
@@ -7870,9 +8219,11 @@ Magic Word: {{PAGENAMEE}} with metacharacters (bug 26781)
 title=[[*RFC 1234 http://example.com/]]
 !! wikitext
 {{PAGENAMEE}}
-!! html
+!! html/php
 <p>&#42;RFC_1234_http&#58;//example.com/
 </p>
+!! html+tidy
+<p>*RFC_1234_http://example.com/</p>
 !! end
 
 !! test
@@ -8376,9 +8727,16 @@ Template with thumb image (with link in description)
 !! wikitext
 {{paramtest|
   param =[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}}
-!! html
+!! html/php
 This is a test template with parameter <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&amp;wpDestFile=Noimage.png" class="new" title="File:Noimage.png">File:Noimage.png</a>  <div class="thumbcaption"><a href="/index.php?title=No_link&amp;action=edit&amp;redlink=1" class="new" title="No link (page does not exist)">link</a> <a href="/index.php?title=No_link&amp;action=edit&amp;redlink=1" class="new" title="No link (page does not exist)">caption</a></div></div></div>
 
+!! html+tidy
+<p>This is a test template with parameter</p>
+<div class="thumb tright">
+<div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&amp;wpDestFile=Noimage.png" class="new" title="File:Noimage.png">File:Noimage.png</a>
+<div class="thumbcaption"><a href="/index.php?title=No_link&amp;action=edit&amp;redlink=1" class="new" title="No link (page does not exist)">link</a> <a href="/index.php?title=No_link&amp;action=edit&amp;redlink=1" class="new" title="No link (page does not exist)">caption</a></div>
+</div>
+</div>
 !! end
 
 !! article
@@ -8580,8 +8938,8 @@ Template with targets containing wikilinks
 
 {{{{echo|[[foo}}]]}}
 !! html
-<p>{{<a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">foo</a>}}
-</p><p>{{<a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">foo</a>}}
+<p>{{<a href="/wiki/Foo" title="Foo">foo</a>}}
+</p><p>{{<a href="/wiki/Foo" title="Foo">foo</a>}}
 </p><p>{{[[foo}}]]
 </p>
 !! end
@@ -9071,6 +9429,11 @@ Templates: 2. Inside a block tag
 <div>Foo</div>
 <blockquote>Foo</blockquote>
 
+!! html+tidy
+<div>Foo</div>
+<blockquote>
+<p>Foo</p>
+</blockquote>
 !!end
 
 !!test
@@ -9108,7 +9471,11 @@ Templates: P-wrapping: 1c. Templates on consecutive lines
 </p>
 bar <div>baz</div>
 
-!!end
+!! html+tidy
+<p>Foo</p>
+<p>bar</p>
+<div>baz</div>
+!! end
 
 !!test
 Templates: P-wrapping: 1d. Template preceded by comment-only line
@@ -9164,7 +9531,7 @@ Templates: Links: 1. Simple example
 !! wikitext
 {{echo|[[Foo|bar]]}}
 !! html
-<p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
+<p><a href="/wiki/Foo" title="Foo">bar</a>
 </p>
 !!end
 
@@ -9173,7 +9540,7 @@ Templates: Links: 2. Generation of link href
 !! wikitext
 [[{{echo|Foo}}|bar]]
 !! html
-<p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
+<p><a href="/wiki/Foo" title="Foo">bar</a>
 </p>
 !!end
 
@@ -9192,7 +9559,7 @@ Templates: Links: 3. Generation of part of a link href
 
 [[:Foo{{echo|bar}}|bar]]
 !! html
-<p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
+<p><a href="/wiki/Foo" title="Foo">bar</a>
 </p><p><a href="/index.php?title=Foobar&amp;action=edit&amp;redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
 </p><p><a href="/index.php?title=Foobarbaz&amp;action=edit&amp;redlink=1" class="new" title="Foobarbaz (page does not exist)">Foobarbaz</a>
 </p><p><a href="/index.php?title=Foobar&amp;action=edit&amp;redlink=1" class="new" title="Foobar (page does not exist)">bar</a>
@@ -9215,7 +9582,7 @@ Templates: Links: 5. Generation of link text
 !! wikitext
 [[Foo|{{echo|bar}}]]
 !! html
-<p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
+<p><a href="/wiki/Foo" title="Foo">bar</a>
 </p>
 !!end
 
@@ -9224,7 +9591,7 @@ Templates: Links: 5. Nested templates (only outermost template should be marked)
 !! wikitext
 {{echo|[[{{echo|Foo}}|bar]]}}
 !! html
-<p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
+<p><a href="/wiki/Foo" title="Foo">bar</a>
 </p>
 !!end
 
@@ -9406,7 +9773,14 @@ Templates: Wiki Tables: 1a. Fostering of entire template content
 a
 <tr><td></td></tr></table>
 
-!!end
+!! html+tidy
+<p>a</p>
+<table>
+<tr>
+<td></td>
+</tr>
+</table>
+!! end
 
 !!test
 Templates: Wiki Tables: 1b. Fostering of entire template content
@@ -9424,7 +9798,16 @@ foo
 </div>
 <tr><td></td></tr></table>
 
-!!end
+!! html+tidy
+<div>
+<p>foo</p>
+</div>
+<table>
+<tr>
+<td></td>
+</tr>
+</table>
+!! end
 
 !!test
 Templates: Wiki Tables: 2. Fostering of partial template content
@@ -9439,7 +9822,15 @@ a
 <div>b</div>
 <tr><td></td></tr></table>
 
-!!end
+!! html+tidy
+<p>a</p>
+<div>b</div>
+<table>
+<tr>
+<td></td>
+</tr>
+</table>
+!! end
 
 !!test
 Templates: Wiki Tables: 3. td-content via multiple templates
@@ -9545,7 +9936,11 @@ a<div>b{{echo|c</div>d}}e
 !! html
 a<div>bc</div>de
 
-!!end
+!! html+tidy
+<p>a</p>
+<div>bc</div>
+<p>de</p>
+!! end
 
 !!test
 Templates: Ugly templates: 1. Navbox template parses badly leading to table misnesting
@@ -10458,7 +10853,7 @@ thumbsize=220
 [[Link2]]
 ]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Caption <a href="/index.php?title=Link1&amp;action=edit&amp;redlink=1" class="new" title="Link1 (page does not exist)">Link1</a> [[]] <a href="/index.php?title=Link2&amp;action=edit&amp;redlink=1" class="new" title="Link2 (page does not exist)">Link2</a></div></div></div>
+<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" data-parsoid='{"stx":"simple","a":{"href":"./Link1"},"sa":{"href":"Link1"},"dsr":[32,41,2,2]}'>Link1</a>
@@ -10494,7 +10889,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb|{{echo|137px}}|This is a caption]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:139px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" width="137" height="16" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption</div></div></div>
+<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>
@@ -10505,7 +10900,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|{{echo|thumb}}|{{echo|137px}}|This is a caption]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:139px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" width="137" height="16" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption</div></div></div>
+<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>
@@ -10535,6 +10930,7 @@ 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
@@ -10547,8 +10943,21 @@ thumbsize=220
 <p>123<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>456
 </p>
 123<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>456
-123<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>456
+123<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>456
 
+!! html/php+tidy
+<p>123<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>456</p>
+<p>123</p>
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
+<p>456 123</p>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
+</div>
+</div>
+</div>
+<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
@@ -10586,7 +10995,7 @@ thumbsize=220
 
 [[File:Foobar.jpg|middle|text-top|caption]]
 !! html/php
-<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<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>
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" style="vertical-align: middle" /></a>
 </p>
 !! html/parsoid
@@ -10747,7 +11156,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb|link=http://example.com/|Title]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="http://example.com/"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="http://example.com/"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>Title</figcaption></figure>
@@ -10760,7 +11169,7 @@ thumbsize=220
 !! wikitext
 [[File:Foobar.jpg|thumb=Thumb.png|Title]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
@@ -10774,7 +11183,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|Title]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
@@ -10788,7 +11197,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb=Thumb.png|link=http://example.com|Title]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="http://example.com"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="http://example.com"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="http://example.com"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
@@ -10802,7 +11211,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb=Thumb.png|link=|Title]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:137px;"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" />  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:137px;"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" />  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><span><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></span><figcaption>Title</figcaption></figure>
@@ -10816,7 +11225,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|alt=alttext|Title]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="alttext" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="alttext" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="Main_Page"><img alt="alttext" resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
@@ -10917,9 +11326,9 @@ parsoid=wt2html,wt2wt,html2html
 [[File:Foobar.jpg|thumb|frameless|caption]]
 [[File:Foobar.jpg|thumb|frame|caption]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<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>
+<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>
+<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>
@@ -10977,7 +11386,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb|50px]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:52px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:52px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
 
 !! html/parsoid
 <figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="6" width="50"/></a></figure>
@@ -10992,8 +11401,8 @@ parsoid=wt2html,wt2wt,html2html
 
 [[File:Foobar.svg|thumb|2000px]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>
-<div class="thumb tright"><div class="thumbinner" style="width:2002px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" width="2000" height="1500" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:2002px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" width="2000" height="1500" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div></div></div></div>
 
 !! html/parsoid
 <figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></figure>
@@ -11092,7 +11501,7 @@ thumbsize=220
 !! wikitext
 [[File:Foobar.jpg|thumb|http://example.com]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
+<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><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></figcaption></figure>
@@ -11106,7 +11515,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb|http://example.com|alt=Alteration]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Alteration" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Alteration" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img alt="Alteration" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></figcaption></figure>
@@ -11118,7 +11527,7 @@ SVG thumbnails with no language set
 !! wikitext
 [[File:Foobar.svg|thumb|caption]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" height="165" width="220"/></a><figcaption>caption</figcaption></figure>
@@ -11131,7 +11540,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.svg|thumb|caption|lang=de]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=File:Foobar.svg&amp;lang=de" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=File:Foobar.svg&amp;lang=de" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" lang="de" height="165" width="220"/></a><figcaption>caption</figcaption></figure>
@@ -11144,7 +11553,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.svg|thumb|caption|lang=invalid.language.code]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>lang=invalid.language.code</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div>lang=invalid.language.code</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" height="165" width="220"/></a><figcaption>lang=invalid.language.code</figcaption></figure>
@@ -11155,7 +11564,7 @@ BUG 1887: A ISBN with a thumbnail
 !! wikitext
 [[File:Foobar.jpg|thumb|ISBN 1235467890]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a href="/wiki/Special:BookSources/1235467890" class="internal mw-magiclink-isbn">ISBN 1235467890</a></div></div></div>
+<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><a href="/wiki/Special:BookSources/1235467890" class="internal mw-magiclink-isbn">ISBN 1235467890</a></div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption><a href="Special:BookSources/1235467890" rel="mw:ExtLink">ISBN 1235467890</a></figcaption></figure>
@@ -11166,7 +11575,7 @@ BUG 1887: A RFC with a thumbnail
 !! wikitext
 [[File:Foobar.jpg|thumb|This is RFC 12354]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc12354">RFC 12354</a></div></div></div>
+<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>This is <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc12354">RFC 12354</a></div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>This is <a href="//tools.ietf.org/html/rfc12354" rel="mw:ExtLink">RFC 12354</a></figcaption></figure>
@@ -11177,7 +11586,7 @@ BUG 1887: A mailto link with a thumbnail
 !! wikitext
 [[File:Foobar.jpg|thumb|Please mailto:nobody@example.com]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Please <a rel="nofollow" class="external free" href="mailto:nobody@example.com">mailto:nobody@example.com</a></div></div></div>
+<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>Please <a rel="nofollow" class="external free" href="mailto:nobody@example.com">mailto:nobody@example.com</a></div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>Please <a rel="mw:ExtLink" href="mailto:nobody@example.com">mailto:nobody@example.com</a></figcaption></figure>
@@ -11268,7 +11677,7 @@ Image caption containing another image
 !! wikitext
 [[File:Foobar.jpg|thumb|This is a caption with another [[File:Thumb.png|image]] inside it!]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption with another <a href="/wiki/File:Thumb.png" class="image" title="image"><img alt="image" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" /></a> inside it!</div></div></div>
+<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>This is a caption with another <a href="/wiki/File:Thumb.png" class="image" title="image"><img alt="image" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" /></a> inside it!</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>This is a caption with another <span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"image"}'><a href="File:Thumb.png"><img resource="./File:Thumb.png" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a></span> inside it!</figcaption></figure>
@@ -11292,7 +11701,7 @@ Image: caption containing leading space
 !! wikitext
 [[File:Foobar.jpg|thumb| bar]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>bar</div></div></div>
+<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>bar</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> bar</figcaption></figure>
@@ -11311,7 +11720,7 @@ parsoid=wt2html,wt2wt,html2html
 |}
 and some more text.]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is an example image thumbnail caption with a table <table> <tr> <th> Foo </th> <th> Bar </th></tr> <tr> <td> Foo1 </td> <td> Bar1 </td></tr></table> and some more text.</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is an example image thumbnail caption with a table <table> <tr> <th> Foo </th> <th> Bar </th></tr> <tr> <td> Foo1 </td> <td> Bar1 </td></tr></table> and some more text.</div></div></div>
 
 !! html/parsoid
 <figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="23" width="200"/></a><figcaption>This is an example image thumbnail caption with a table
@@ -11328,7 +11737,7 @@ Bug 3090: External links other than http: in image captions
 !! wikitext
 [[File:Foobar.jpg|thumb|200x200px|This caption has [irc://example.net irc] and [https://example.com Secure] ext links in it.]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This caption has <a rel="nofollow" class="external text" href="irc://example.net">irc</a> and <a rel="nofollow" class="external text" href="https://example.com">Secure</a> ext links in it.</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This caption has <a rel="nofollow" class="external text" href="irc://example.net">irc</a> and <a rel="nofollow" class="external text" href="https://example.com">Secure</a> ext links in it.</div></div></div>
 
 !! html/parsoid
 <figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="23" width="200"/></a><figcaption>This caption has <a rel="mw:ExtLink" href="irc://example.net">irc</a> and <a rel="mw:ExtLink" href="https://example.com">Secure</a> ext links in it.</figcaption></figure>
@@ -11370,7 +11779,7 @@ language=es
 !! wikitext
 [[Archivo:Foobar.jpg|miniatura|izquierda|enlace=foo|caption]]
 !! html/php
-<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/Foo" title="Foo"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/Archivo:Foobar.jpg" class="internal" title="Aumentar"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/Foo" title="Foo"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/Archivo:Foobar.jpg" class="internal" title="Aumentar"></a></div>caption</div></div></div>
 
 !! html/parsoid
 <figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="./Foo"><img resource="./Archivo:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
@@ -11403,9 +11812,9 @@ parsoid=wt2html,wt2wt,html2html
 
 [[File:Foobar.jpg|bogus1|thumb|bogus2|left|bogus3|caption]]
 !! html/php
-<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
-<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
-<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<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>
+<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</div></div></div>
+<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></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>
@@ -12761,6 +13170,8 @@ I always thought &eacute; was a cute letter.
 !! html
 <p>I always thought &#233; was a cute letter.
 </p>
+!! html+tidy
+<p>I always thought é was a cute letter.</p>
 !! end
 
 !! test
@@ -12822,6 +13233,7 @@ Ensure that HTML adoption agency algorithm is properly implemented.
 !! end
 
 # This was bug 41545 in the PHP parser.
+# Note that tidy doesn't handle this correctly.
 !! test
 Nesting of <kbd>
 !! wikitext
@@ -12834,6 +13246,8 @@ Nesting of <kbd>
 # The following cases were bug 51081 in the PHP parser.
 # Note that there are some other nestable tags (b, i, etc) which are
 # not covered; see bug 51081 for discussion.
+
+# Note that tidy doesn't handle this correctly.
 !! test
 Nesting of <em>
 !! wikitext
@@ -12843,6 +13257,7 @@ Nesting of <em>
 </p>
 !! end
 
+# Note that tidy doesn't handle this correctly.
 !! test
 Nesting of <strong>
 !! wikitext
@@ -12856,11 +13271,11 @@ Nesting of <strong>
 Nesting of <q>
 !! wikitext
 <q>X<q>Y</q>Z</q>
-!! html
-<p><q>X<q>Y</q>Z</q>
-</p>
+!! html+tidy
+<p><q>X<q>Y</q>Z</q></p>
 !! end
 
+# Note that tidy doesn't handle this correctly.
 !! test
 Nesting of <ruby>
 !! wikitext
@@ -12870,6 +13285,7 @@ Nesting of <ruby>
 </p>
 !! end
 
+# Note that tidy doesn't handle this correctly.
 !! test
 Nesting of <bdo>
 !! wikitext
@@ -12911,6 +13327,8 @@ fixme: doBlockLevels won't wrap this in a paragraph because it contains a div
 !! html
 <a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link&lt;div style="display:none"&gt;" onmouseover="alert(document.cookie)" onfoo="&lt;/div&gt;</a>
 
+!! html+tidy
+<p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link&lt;div style="display:none"&gt;" onmouseover="alert(document.cookie)" onfoo="&lt;/div&gt;</a></p>
 !! end
 
 !! test
@@ -14056,6 +14474,17 @@ http://<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 </div>
 
 
+!! html+tidy
+<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<p>http://</p>
+<div id="toc" class="toc">
+<div id="toctitle">
+<h2>Contents</h2>
+</div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
+</ul>
+</div>
 !! end
 
 !! test
@@ -14069,6 +14498,13 @@ Fuzz testing: Parser14-table
 <tr><td></td></tr>
 </table>
 
+!! html+tidy
+<h2><span class="mw-headline" id="a">a</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: a">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<table style="__TOC__">
+<tr>
+<td></td>
+</tr>
+</table>
 !! end
 
 # Known to produce bogus xml (extra </td>)
@@ -14090,6 +14526,15 @@ noxml
 </tr>
 </table>
 
+!! html+tidy
+<table>
+<tr>
+<th>https://</th>
+<th></th>
+<th></th>
+<th></th>
+</tr>
+</table>
 !! end
 
 !! test
@@ -14177,7 +14622,6 @@ Fuzz testing: Parser25 (bug 6055)
 
 !!test
 Fuzz testing: URL adjacent extension (with space, clean)
-!! options
 !! wikitext
 http://example.com <nowiki>junk</nowiki>
 !! html
@@ -14187,7 +14631,6 @@ http://example.com <nowiki>junk</nowiki>
 
 !!test
 Fuzz testing: URL adjacent extension (no space, dirty; nowiki)
-!! options
 !! wikitext
 http://example.com<nowiki>junk</nowiki>
 !! html
@@ -14197,12 +14640,16 @@ http://example.com<nowiki>junk</nowiki>
 
 !!test
 Fuzz testing: URL adjacent extension (no space, dirty; pre)
-!! options
 !! wikitext
 http://example.com<pre>junk</pre>
 !! html
 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><pre>junk</pre>
 
+!! html+tidy
+<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></p>
+<pre>
+junk
+</pre>
 !!end
 
 !!test
@@ -15595,6 +16042,8 @@ parsoid=wt2html,wt2wt,html2html
 !! html/php
 <p>&#x4a;&#x61;&#x76;&#x61;&#x53;&#x63;&#114;&#x69;&#112;&#x74;
 </p>
+!! html/php+tidy
+<p>JavaScript</p>
 !! html/parsoid
 <p><span typeof="mw:Entity">J</span><span typeof="mw:Entity">a</span><span typeof="mw:Entity">v</span><span typeof="mw:Entity">a</span><span typeof="mw:Entity">S</span><span typeof="mw:Entity">c</span><span typeof="mw:Entity">r</span><span typeof="mw:Entity">i</span><span typeof="mw:Entity">p</span><span typeof="mw:Entity">t</span></p>
 !! end
@@ -15619,6 +16068,8 @@ parsoid=wt2html,wt2wt,html2html
 !! html/php
 <p>&#xee;&#xee;
 </p>
+!! html/php+tidy
+<p>îî</p>
 !! html/parsoid
 <p><span typeof="mw:Entity">î</span><span typeof="mw:Entity">î</span></p>
 !! end
@@ -15640,6 +16091,8 @@ ISBN  978-0-1234-56&#x20;789
 !! html
 <p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a>&#x20;789
 </p>
+!! html+tidy
+<p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a> 789</p>
 !! end
 
 !! test
@@ -15711,6 +16164,8 @@ RFC   983&#x20;987
 !! html
 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc983">RFC 983</a>&#x20;987
 </p>
+!! html+tidy
+<p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc983">RFC 983</a> 987</p>
 !! end
 
 !! test
@@ -15826,7 +16281,7 @@ Images with the "|" character in the comment
 !! wikitext
 [[File:Foobar.jpg|thumb|An [http://test/?param1=|left|&param2=|x external] URL]]
 !! html/php
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>An <a rel="nofollow" class="external text" href="http://test/?param1=%7Cleft%7C&amp;param2=%7Cx">external</a> URL</div></div></div>
+<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>An <a rel="nofollow" class="external text" href="http://test/?param1=%7Cleft%7C&amp;param2=%7Cx">external</a> URL</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>An <a rel="mw:ExtLink" href="http://test/?param1=|left|&amp;param2=|x">external</a> URL</figcaption></figure>
@@ -16928,6 +17383,10 @@ Line two</blockquote>
 <blockquote>Line one
 Line two</blockquote>
 
+!! html+tidy
+<blockquote>
+<p>Line one Line two</p>
+</blockquote>
 !! end
 
 !! test
@@ -16943,6 +17402,10 @@ Line two</blockquote>
 </p>
 Line two</blockquote>
 
+!! html+tidy
+<blockquote>
+<p>Line one</p>
+Line two</blockquote>
 !! end
 
 !! test
@@ -16958,6 +17421,11 @@ Line two
 </p>
 </blockquote>
 
+!! html+tidy
+<blockquote>
+<p>Line one</p>
+<p>Line two</p>
+</blockquote>
 !! end
 
 !! test
@@ -16975,6 +17443,11 @@ Line two
 </p>
 </blockquote>
 
+!! html+tidy
+<blockquote>
+<p>Line one</p>
+<p>Line two</p>
+</blockquote>
 !! end
 
 !! test
@@ -17056,7 +17529,7 @@ Free external link invading image caption
 !! wikitext
 [[Image:Foobar.jpg|thumb|http://x|hello]]
 !! html
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>hello</div></div></div>
+<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>hello</div></div></div>
 
 !! end
 
@@ -17735,6 +18208,20 @@ __TOC__
 
 <h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
+!! html+tidy
+<div id="toc" class="toc">
+<div id="toctitle">
+<h2>Contents</h2>
+</div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
+</ul>
+</div>
+<h2><span class="mw-headline" id="Quote"></span></h2>
+<blockquote>
+<p><span class="mw-headline" id="Quote">Quote</span></p>
+</blockquote>
+<p><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a><span class="mw-editsection-bracket">]</span></span></p>
 !! end
 
 !! test
@@ -17777,6 +18264,22 @@ __TOC__
 <h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
+!! html+tidy
+<div id="toc" class="toc">
+<div id="toctitle">
+<h2>Contents</h2>
+</div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#Foo_Bar"><span class="tocnumber">1</span> <span class="toctext"><i>Foo</i> <b>Bar</b></span></a></li>
+<li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
+</ul>
+</div>
+<h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i></span></h2>
+<blockquote>
+<p><span class="mw-headline" id="Foo_Bar_2">Bar</span></p>
+</blockquote>
+<p><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></p>
 !! end
 
 !! test
@@ -17959,7 +18462,7 @@ nowiki inside link inside heading (bug 18295)
 !! wikitext
 ==[[foo|x<nowiki>y</nowiki>z]]==
 !! html
-<h2><span class="mw-headline" id="xyz"><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">xyz</a></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: xyz">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="xyz"><a href="/wiki/Foo" title="Foo">xyz</a></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: xyz">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -20159,6 +20662,13 @@ Indented block & table
  {|
  |foo
  |}
+!! html/php
+ <div>foo</div>
+<table>
+<tr>
+<td>foo
+</td></tr></table>
+
 !! html/parsoid
  <div data-parsoid='{"stx":"html"}'>foo</div>
  <table><tbody>
@@ -20173,6 +20683,13 @@ Indent and comment before table row
  <!--hi-->|-
  | there
 |}
+!! html/php
+<table>
+
+<tr>
+<td> there
+</td></tr></table>
+
 !! html/parsoid
 <table data-parsoid='{}'>
  <!--hi--><tbody data-parsoid='{}'><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'>
index 1fbc7a2..873d979 100644 (file)
@@ -1109,4 +1109,24 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
 
                $this->assertEmpty( $errors, implode( "\n", $errors ) );
        }
+
+       /**
+        * 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
+        *
+        * @param array $matcher
+        * @param string $actual
+        * @param string $message
+        * @param bool $isHtml
+        */
+       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($matched, $message);
+       }
 }
index d4d9551..a8829cd 100644 (file)
@@ -715,7 +715,7 @@ class HtmlTest extends MediaWikiTestCase {
                        'Input wrapper with type and value.'
                );
                $this->assertEquals(
-                       '<input name=testname>',
+                       '<input name=testname class=mw-ui-input>',
                        Html::input( 'testname' ),
                        'Input wrapper with all default values.'
                );
index 0272c54..3c255b5 100644 (file)
@@ -22,7 +22,7 @@ class ImagePageTest extends MediaWikiMediaTestCase {
 
        /**
         * @dataProvider providerGetDisplayWidthHeight
-        * @param array $dimensions Array [maxWidth, maxHeight, width, height]
+        * @param array $dim Array [maxWidth, maxHeight, width, height]
         * @param array $expected Array [width, height] The width and height we expect to display at
         */
        function testGetDisplayWidthHeight( $dim, $expected ) {
index f82a756..2fce6bf 100644 (file)
@@ -22,6 +22,7 @@ class ImportTest extends MediaWikiLangTestCase {
         * @covers WikiImporter::handlePage
         * @dataProvider getRedirectXML
         * @param string $xml
+        * @param string|null $redirectTitle
         */
        public function testHandlePageContainsRedirect( $xml, $redirectTitle ) {
                $source = $this->getInputStreamSource( $xml );
index 3d655fb..3eb58fc 100644 (file)
@@ -154,10 +154,8 @@ class OutputPageTest extends MediaWikiTestCase {
                        // Load private module (combined)
                        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/* cache key: wiki:resourceloader:filter:minify-css:7:fd8ea20b3336b2bfb230c789d430067a */"]},{});
-/* cache key: wiki:resourceloader:filter:minify-js:7:274ccee17be73cd5f4dda5dc2a819188 */
-}</script>
+                               '<script>if(window.mw){mw.loader.implement("test.quux",function($,jQuery){mw.test.baz({token:123});},{"css":[".mw-icon{transition:none}\n"]},{});}
+</script>
 '
                        ),
                        // Load module script with with ESI
@@ -186,10 +184,6 @@ mw.loader.implement("test.quux",function($,jQuery){mw.test.baz({token:123});},{"
                        'wgLoadScript' => 'http://127.0.0.1:8080/w/load.php',
                        // Affects whether CDATA is inserted
                        'wgWellFormedXml' => false,
-                       // Cache key is based on database name, and affects output;
-                       // this test should not touch the database anyways.
-                       'wgDBname' => 'wiki',
-                       'wgDBprefix' => '',
                ) );
                $class = new ReflectionClass( 'OutputPage' );
                $method = $class->getMethod( 'makeResourceLoaderLink' );
@@ -219,6 +213,8 @@ mw.loader.implement("test.quux",function($,jQuery){mw.test.baz({token:123});},{"
                        )),
                ) );
                $links = $method->invokeArgs( $out, $args );
-               $this->assertEquals( $expectedHtml, $links['html'] );
+               // Strip comments to avoid variation due to wgDBname in WikiID and cache key
+               $actualHtml = preg_replace( '#/\*[^*]+\*/#', '', $links['html'] );
+               $this->assertEquals( $expectedHtml, $actualHtml );
        }
 }
index 6fdc239..86e8e8b 100644 (file)
@@ -57,12 +57,12 @@ class TestSample extends MediaWikiLangTestCase {
                );
        }
 
-       // @codingStandardsIgnoreStart Ignore long line warning
        /**
         * @dataProvider provideTitles
+        * @codingStandardsIgnoreStart Ignore long line warning
         * See http://phpunit.de/manual/3.7/en/appendixes.annotations.html#appendixes.annotations.dataProvider
+        * @codingStandardsIgnoreEnd
         */
-       // @codingStandardsIgnoreEnd
        public function testCreateBasicListOfTitles( $titleName, $ns, $text ) {
                $title = Title::newFromText( $titleName, $ns );
                $this->assertEquals( $text, "$title", "see if '$titleName' matches '$text'" );
index 988a4a4..d2400b3 100644 (file)
@@ -403,17 +403,17 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
 
                $this->setTitle( NS_USER );
                $this->setUserPerm( '' );
-               $this->assertEquals( array( array( 'badaccess-group0' ), array( 'namespaceprotected', 'User' ) ),
+               $this->assertEquals( array( array( 'badaccess-group0' ), array( 'namespaceprotected', 'User', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus', $this->user ) );
 
                $this->setTitle( NS_MEDIAWIKI );
                $this->setUserPerm( 'bogus' );
-               $this->assertEquals( array( array( 'protectedinterface' ) ),
+               $this->assertEquals( array( array( 'protectedinterface', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus', $this->user ) );
 
                $this->setTitle( NS_MEDIAWIKI );
                $this->setUserPerm( 'bogus' );
-               $this->assertEquals( array( array( 'protectedinterface' ) ),
+               $this->assertEquals( array( array( 'protectedinterface', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus', $this->user ) );
 
                $wgNamespaceProtection = null;
@@ -440,38 +440,38 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
 
                $this->setTitle( NS_USER, $this->userName . '/test.js' );
                $this->runCSSandJSPermissions(
-                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected' ) ),
-                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected', 'bogus' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected', 'bogus' ) ),
                        array( array( 'badaccess-group0' ) ),
-                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected', 'bogus' ) ),
                        array( array( 'badaccess-group0' ) )
                );
 
                $this->setTitle( NS_USER, $this->userName . '/test.css' );
                $this->runCSSandJSPermissions(
-                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected', 'bogus' ) ),
                        array( array( 'badaccess-group0' ) ),
-                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected', 'bogus' ) ),
                        array( array( 'badaccess-group0' ) ),
-                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected' ) )
+                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected', 'bogus' ) )
                );
 
                $this->setTitle( NS_USER, $this->altUserName . '/test.js' );
                $this->runCSSandJSPermissions(
-                       array( array( 'badaccess-group0' ), array( 'customjsprotected' ) ),
-                       array( array( 'badaccess-group0' ), array( 'customjsprotected' ) ),
-                       array( array( 'badaccess-group0' ), array( 'customjsprotected' ) ),
-                       array( array( 'badaccess-group0' ), array( 'customjsprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customjsprotected', 'bogus' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customjsprotected', 'bogus' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customjsprotected', 'bogus' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customjsprotected', 'bogus' ) ),
                        array( array( 'badaccess-group0' ) )
                );
 
                $this->setTitle( NS_USER, $this->altUserName . '/test.css' );
                $this->runCSSandJSPermissions(
-                       array( array( 'badaccess-group0' ), array( 'customcssprotected' ) ),
-                       array( array( 'badaccess-group0' ), array( 'customcssprotected' ) ),
-                       array( array( 'badaccess-group0' ), array( 'customcssprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customcssprotected', 'bogus' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customcssprotected', 'bogus' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customcssprotected', 'bogus' ) ),
                        array( array( 'badaccess-group0' ) ),
-                       array( array( 'badaccess-group0' ), array( 'customcssprotected' ) )
+                       array( array( 'badaccess-group0' ), array( 'customcssprotected', 'bogus' ) )
                );
 
                $this->setTitle( NS_USER, $this->altUserName . '/tempo' );
@@ -545,38 +545,38 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
                        "bogus" => array( 'bogus', "sysop", "protect", "" ) );
 
                $this->assertEquals( array( array( 'badaccess-group0' ),
-                               array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'editprotected' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+                               array( 'protectedpagetext', 'bogus', 'bogus' ),
+                               array( 'protectedpagetext', 'editprotected', 'bogus' ),
+                               array( 'protectedpagetext', 'protect', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
-               $this->assertEquals( array( array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'editprotected' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+               $this->assertEquals( array( array( 'protectedpagetext', 'bogus', 'edit' ),
+                               array( 'protectedpagetext', 'editprotected', 'edit' ),
+                               array( 'protectedpagetext', 'protect', 'edit' ) ),
                        $this->title->getUserPermissionsErrors( 'edit',
                                $this->user ) );
                $this->setUserPerm( "" );
                $this->assertEquals( array( array( 'badaccess-group0' ),
-                               array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'editprotected' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+                               array( 'protectedpagetext', 'bogus', 'bogus' ),
+                               array( 'protectedpagetext', 'editprotected', 'bogus' ),
+                               array( 'protectedpagetext', 'protect', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
                $this->assertEquals( array( array( 'badaccess-groups', "*, [[$prefix:Users|Users]]", 2 ),
-                               array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'editprotected' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+                               array( 'protectedpagetext', 'bogus', 'edit' ),
+                               array( 'protectedpagetext', 'editprotected', 'edit' ),
+                               array( 'protectedpagetext', 'protect', 'edit' ) ),
                        $this->title->getUserPermissionsErrors( 'edit',
                                $this->user ) );
                $this->setUserPerm( array( "edit", "editprotected" ) );
                $this->assertEquals( array( array( 'badaccess-group0' ),
-                               array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+                               array( 'protectedpagetext', 'bogus', 'bogus' ),
+                               array( 'protectedpagetext', 'protect', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
                $this->assertEquals( array(
-                               array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+                               array( 'protectedpagetext', 'bogus', 'edit' ),
+                               array( 'protectedpagetext', 'protect', 'edit' ) ),
                        $this->title->getUserPermissionsErrors( 'edit',
                                $this->user ) );
 
@@ -587,14 +587,14 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
                $this->assertEquals( false,
                        $this->title->quickUserCan( 'edit', $this->user ) );
                $this->assertEquals( array( array( 'badaccess-group0' ),
-                               array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'editprotected' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+                               array( 'protectedpagetext', 'bogus', 'bogus' ),
+                               array( 'protectedpagetext', 'editprotected', 'bogus' ),
+                               array( 'protectedpagetext', 'protect', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
-               $this->assertEquals( array( array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'editprotected' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+               $this->assertEquals( array( array( 'protectedpagetext', 'bogus', 'edit' ),
+                               array( 'protectedpagetext', 'editprotected', 'edit' ),
+                               array( 'protectedpagetext', 'protect', 'edit' ) ),
                        $this->title->getUserPermissionsErrors( 'edit',
                                $this->user ) );
 
@@ -604,14 +604,14 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
                $this->assertEquals( false,
                        $this->title->quickUserCan( 'edit', $this->user ) );
                $this->assertEquals( array( array( 'badaccess-group0' ),
-                               array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+                               array( 'protectedpagetext', 'bogus', 'bogus' ),
+                               array( 'protectedpagetext', 'protect', 'bogus' ),
+                               array( 'protectedpagetext', 'protect', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
-               $this->assertEquals( array( array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ),
-                               array( 'protectedpagetext', 'protect' ) ),
+               $this->assertEquals( array( array( 'protectedpagetext', 'bogus', 'edit' ),
+                               array( 'protectedpagetext', 'protect', 'edit' ),
+                               array( 'protectedpagetext', 'protect', 'edit' ) ),
                        $this->title->getUserPermissionsErrors( 'edit',
                                $this->user ) );
        }
@@ -630,9 +630,9 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
 
                $this->assertEquals( false,
                        $this->title->userCan( 'bogus', $this->user ) );
-               $this->assertEquals( array( array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n" ),
-                               array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n" ),
-                               array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n" ) ),
+               $this->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 ) );
 
                $this->assertEquals( true,
index 382e3d8..e655881 100644 (file)
@@ -81,7 +81,7 @@ class XmlTest extends MediaWikiTestCase {
         */
        public function testElementInputCanHaveAValueOfZero() {
                $this->assertEquals(
-                       '<input name="name" value="0" />',
+                       '<input name="name" value="0" class="mw-ui-input" />',
                        Xml::input( 'name', false, 0 ),
                        'Input with a value of 0 (bug 23797)'
                );
@@ -152,7 +152,7 @@ class XmlTest extends MediaWikiTestCase {
 
                $this->assertEquals(
                        '<label for="year">From year (and earlier):</label> ' .
-                               '<input id="year" maxlength="4" size="7" type="number" value="2011" name="year" /> ' .
+                               '<input id="year" maxlength="4" size="7" type="number" value="2011" name="year" class="mw-ui-input" /> ' .
                                '<label for="month">From month (and earlier):</label> ' .
                                '<select id="month" name="month" class="mw-month-selector">' .
                                '<option value="-1">all</option>' . "\n" .
@@ -173,7 +173,7 @@ class XmlTest extends MediaWikiTestCase {
                );
                $this->assertEquals(
                        '<label for="year">From year (and earlier):</label> ' .
-                               '<input id="year" maxlength="4" size="7" type="number" value="2011" name="year" /> ' .
+                               '<input id="year" maxlength="4" size="7" type="number" value="2011" name="year" class="mw-ui-input" /> ' .
                                '<label for="month">From month (and earlier):</label> ' .
                                '<select id="month" name="month" class="mw-month-selector">' .
                                '<option value="-1">all</option>' . "\n" .
@@ -207,7 +207,7 @@ class XmlTest extends MediaWikiTestCase {
 
                $this->assertEquals(
                        '<label for="year">From year (and earlier):</label> ' .
-                               '<input id="year" maxlength="4" size="7" type="number" name="year" /> ' .
+                               '<input id="year" maxlength="4" size="7" type="number" name="year" class="mw-ui-input" /> ' .
                                '<label for="month">From month (and earlier):</label> ' .
                                '<select id="month" name="month" class="mw-month-selector">' .
                                '<option value="-1">all</option>' . "\n" .
@@ -233,7 +233,7 @@ class XmlTest extends MediaWikiTestCase {
         */
        public function testTextareaNoContent() {
                $this->assertEquals(
-                       '<textarea name="name" id="name" cols="40" rows="5"></textarea>',
+                       '<textarea name="name" id="name" cols="40" rows="5" class="mw-ui-input"></textarea>',
                        Xml::textarea( 'name', '' ),
                        'textarea() with not content'
                );
@@ -244,7 +244,7 @@ class XmlTest extends MediaWikiTestCase {
         */
        public function testTextareaAttribs() {
                $this->assertEquals(
-                       '<textarea name="name" id="name" cols="20" rows="10">&lt;txt&gt;</textarea>',
+                       '<textarea name="name" id="name" cols="20" rows="10" class="mw-ui-input">&lt;txt&gt;</textarea>',
                        Xml::textarea( 'name', '<txt>', 20, 10 ),
                        'textarea() with custom attribs'
                );
index 1ac9b9d..19c0a7d 100644 (file)
@@ -39,8 +39,8 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
                                'logout',
                                'action',
                                'ApiLogout',
-                               function( ApiMain $main, $action ) {
-                                               return new ApiLogout( $main, $action );
+                               function ( ApiMain $main, $action ) {
+                                       return new ApiLogout( $main, $action );
                                },
                        ),
                );
@@ -80,7 +80,7 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
                                        ),
                                        'logout' => array(
                                                'class' => 'ApiLogout',
-                                               'factory' => function( ApiMain $main, $action ) {
+                                               'factory' => function ( ApiMain $main, $action ) {
                                                        return new ApiLogout( $main, $action );
                                                },
                                        ),
@@ -113,9 +113,9 @@ class ApiModuleManagerTest extends MediaWikiTestCase {
                        ),
                        'logout' => array(
                                'class' => 'ApiLogout',
-                               'factory' => function( ApiMain $main, $action ) {
-                                               return new ApiLogout( $main, $action );
-                                       },
+                               'factory' => function ( ApiMain $main, $action ) {
+                                       return new ApiLogout( $main, $action );
+                               },
                        ),
                );
 
index 21f4322..b03836e 100644 (file)
@@ -9,8 +9,8 @@
  */
 class ApiRevisionDeleteTest extends ApiTestCase {
 
-       static $page = 'Help:ApiRevDel_test';
-       var $revs = array();
+       public static $page = 'Help:ApiRevDel_test';
+       public $revs = array();
 
        protected function setUp() {
                // Needs to be before setup since this gets cached
index b556ef8..f633315 100644 (file)
@@ -133,7 +133,7 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
                        $session = $wgRequest->getSessionArray();
                }
 
-               if ( $session['wsToken'] ) {
+               if ( isset( $session['wsToken'] ) && $session['wsToken'] ) {
                        // add edit token to fake session
                        $session['wsEditToken'] = $session['wsToken'];
                        // add token to request parameters
@@ -141,7 +141,7 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
 
                        return $this->doApiRequest( $params, $session, false, $user );
                } else {
-                       throw new Exception( "request data not in right format" );
+                       throw new Exception( "Session token not available" );
                }
        }
 
index 6f4479b..d986e69 100644 (file)
@@ -37,7 +37,7 @@ abstract class ApiQueryContinueTestBase extends ApiQueryTestBase {
         * @param array $params Api parameters
         * @param int $expectedCount Max number of iterations
         * @param string $id Unit test id
-        * @param bool $useContinue True to use smart continue
+        * @param bool $continue True to use smart continue
         * @return Merged results data array
         */
        protected function checkC( $expected, $params, $expectedCount, $id, $continue = true ) {
index 7b686a3..bba22c7 100644 (file)
@@ -96,7 +96,7 @@ class ApiQueryTest extends ApiTestCase {
         * @param string $titlePart
         * @param int $namespace
         * @param string $expected
-        * @param string $description
+        * @param string $expectException
         * @dataProvider provideTestTitlePartToKey
         */
        function testTitlePartToKey( $titlePart, $namespace, $expected, $expectException ) {
index f920ce9..56c15b2 100644 (file)
@@ -52,6 +52,8 @@ STR;
        /**
         * Check that the parameter is a valid two element array,
         * with the first element being API request and the second - expected result
+        * @param array $v
+        * @return array
         */
        private function validateRequestExpectedPair( $v ) {
                $this->assertType( 'array', $v, self::PARAM_ASSERT );
@@ -66,6 +68,8 @@ STR;
 
        /**
         * Recursively merges the expected values in the $item into the $all
+        * @param array &$all
+        * @param array $item
         */
        private function mergeExpected( &$all, $item ) {
                foreach ( $item as $k => $v ) {
index abedc6c..042ae93 100644 (file)
@@ -514,7 +514,7 @@ class DummyContentForTesting extends AbstractContent {
         *
         * @param Title $title Context title for parsing
         * @param int|null $revId Revision ID (for {{REVISIONID}})
-        * @param ParserOptions|null $options Parser options
+        * @param ParserOptions $options Parser options
         * @param bool $generateHtml Whether or not to generate HTML
         * @param ParserOutput &$output The output object to fill (reference).
         */
index ec74574..acfdc0e 100644 (file)
@@ -27,7 +27,7 @@ class JSONContentTest extends MediaWikiLangTestCase {
         * @dataProvider provideDataToEncode
         */
        public function testBeautifyUsesFormatJson( $data ) {
-               $obj = new JSONContent( FormatJson::encode( $data) );
+               $obj = new JSONContent( FormatJson::encode( $data ) );
                $this->assertEquals( FormatJson::encode( $data, true ), $obj->beautifyJSON() );
        }
 
@@ -46,7 +46,7 @@ class JSONContentTest extends MediaWikiLangTestCase {
         */
        public function testPreSaveTransform( $data ) {
                $obj = new JSONContent( FormatJson::encode( $data ) );
-               $newObj = $obj->preSaveTransform( $this->getMockTitle(), $this->getMockUser() , $this->getMockParserOptions() );
+               $newObj = $obj->preSaveTransform( $this->getMockTitle(), $this->getMockUser(), $this->getMockParserOptions() );
                $this->assertTrue( $newObj->equals( new JSONContent( FormatJson::encode( $data, true ) ) ) );
        }
 
@@ -112,5 +112,4 @@ class JSONContentTest extends MediaWikiLangTestCase {
                        ),
                );
        }
-
-}
\ No newline at end of file
+}
index 39c311f..0c0b390 100644 (file)
@@ -136,7 +136,7 @@ class DatabaseTestHelper extends DatabaseBase {
                return false;
        }
 
-       function indexInfo( $table, $index, $fname = 'Database::indexInfo' ) {
+       function indexInfo( $table, $index, $fname = 'DatabaseBase::indexInfo' ) {
                return false;
        }
 
index 9b6391c..5b2de15 100644 (file)
@@ -17,7 +17,7 @@ class XCFHandlerTest extends MediaWikiMediaTestCase {
        /**
         * @param string $filename
         * @param int $expectedWidth Width
-        * @param int $expectedHeigh Height
+        * @param int $expectedHeight Height
         * @dataProvider provideGetImageSize
         * @covers XCFHandler::getImageSize
         */
index 0499f88..4e8c11f 100644 (file)
@@ -36,6 +36,10 @@ class NewParserTest extends MediaWikiTestCase {
         * @var DjVuSupport
         */
        private $djVuSupport;
+       /**
+        * @var TidySupport
+        */
+       private $tidySupport;
 
        protected $file = false;
 
@@ -75,6 +79,7 @@ class NewParserTest extends MediaWikiTestCase {
                $tmpGlobals['wgExtensionAssetsPath'] = '/extensions';
                $tmpGlobals['wgStylePath'] = '/skins';
                $tmpGlobals['wgEnableUploads'] = true;
+               $tmpGlobals['wgUploadNavigationUrl'] = false;
                $tmpGlobals['wgThumbnailScriptPath'] = false;
                $tmpGlobals['wgLocalFileRepo'] = array(
                        'class' => 'LocalRepo',
@@ -95,8 +100,6 @@ class NewParserTest extends MediaWikiTestCase {
                $tmpGlobals['wgUseImageResize'] = true;
                $tmpGlobals['wgAllowExternalImages'] = true;
                $tmpGlobals['wgRawHtml'] = false;
-               $tmpGlobals['wgUseTidy'] = false;
-               $tmpGlobals['wgAlwaysUseTidy'] = false;
                $tmpGlobals['wgWellFormedXml'] = true;
                $tmpGlobals['wgAllowMicrodataAttributes'] = true;
                $tmpGlobals['wgExperimentalHtmlIds'] = false;
@@ -153,8 +156,19 @@ class NewParserTest extends MediaWikiTestCase {
                # see https://gerrit.wikimedia.org/r/111390
                $tmpGlobals['wgExtraInterlanguageLinkPrefixes'] = array( 'mul' );
 
-               //DjVu support
+               // DjVu support
                $this->djVuSupport = new DjVuSupport();
+               // Tidy support
+               $this->tidySupport = new TidySupport();
+               // We always set 'wgUseTidy' to false when parsing, but certain
+               // test-running modes still use tidy if available, so ensure
+               // that the tidy-related options are all set to their defaults.
+               $tmpGlobals['wgUseTidy'] = false;
+               $tmpGlobals['wgAlwaysUseTidy'] = false;
+               $tmpGlobals['wgDebugTidy'] = false;
+               $tmpGlobals['wgTidyConf'] = $IP . '/includes/tidy.conf';
+               $tmpGlobals['wgTidyOpts'] = '';
+               $tmpGlobals['wgTidyInternal'] = $this->tidySupport->isInternal();
 
                $this->setMwGlobals( $tmpGlobals );
 
@@ -735,6 +749,14 @@ class NewParserTest extends MediaWikiTestCase {
                        $output = $parser->parse( $input, $title, $options, true, true, 1337 );
                        $output->setTOCEnabled( !isset( $opts['notoc'] ) );
                        $out = $output->getText();
+                       if ( isset( $opts['tidy'] ) ) {
+                               if ( !$this->tidySupport->isEnabled() ) {
+                                       $this->markTestSkipped( "SKIPPED: tidy extension is not installed.\n" );
+                               } else {
+                                       $out = MWTidy::tidy( $out );
+                                       $out = preg_replace( '/\s+$/', '', $out);
+                               }
+                       }
 
                        if ( isset( $opts['showtitle'] ) ) {
                                if ( $output->getTitleText() ) {
@@ -745,21 +767,19 @@ class NewParserTest extends MediaWikiTestCase {
                        }
 
                        if ( isset( $opts['ill'] ) ) {
-                               $out = $this->tidy( implode( ' ', $output->getLanguageLinks() ) );
+                               $out = implode( ' ', $output->getLanguageLinks() );
                        } elseif ( isset( $opts['cat'] ) ) {
                                $outputPage = $context->getOutput();
                                $outputPage->addCategoryLinks( $output->getCategories() );
                                $cats = $outputPage->getCategoryLinks();
 
                                if ( isset( $cats['normal'] ) ) {
-                                       $out = $this->tidy( implode( ' ', $cats['normal'] ) );
+                                       $out = implode( ' ', $cats['normal'] );
                                } else {
                                        $out = '';
                                }
                        }
                        $parser->mPreprocessor = null;
-
-                       $result = $this->tidy( $result );
                }
 
                $this->teardownGlobals();
@@ -963,23 +983,6 @@ class NewParserTest extends MediaWikiTestCase {
 
        //Various "cleanup" functions
 
-       /**
-        * Run the "tidy" command on text if the $wgUseTidy
-        * global is true
-        *
-        * @param string $text The text to tidy
-        * @return string
-        */
-       protected function tidy( $text ) {
-               global $wgUseTidy;
-
-               if ( $wgUseTidy ) {
-                       $text = MWTidy::tidy( $text );
-               }
-
-               return $text;
-       }
-
        /**
         * Remove last character if it is a newline
         * @param string $s
index e98f0e8..6ca4793 100644 (file)
@@ -5,9 +5,14 @@ class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
        protected function setUp() {
                parent::setUp();
 
-               $this->setMwGlobals( array(
-                       'wgValidSkinNames' => array( 'vector' => 'Vector' ),
-               ) );
+               // The return value of the closure shouldn't matter since this test should
+               // never call it
+               SkinFactory::getDefaultInstance()->register(
+                       'fakeskin',
+                       'FakeSkin',
+                       function(){
+                       }
+               );
        }
 
        /**
@@ -29,7 +34,7 @@ class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
                        ),
                        'skinStyles' => array(
                                'default' => 'quux-fallback.less',
-                               'vector' => array(
+                               'fakeskin' => array(
                                        'baz-vector.css',
                                        'quux-vector.less',
                                ),
index 4497cba..7b7c7f8 100644 (file)
@@ -7,7 +7,7 @@ class SkinFactoryTest extends MediaWikiTestCase {
         */
        public function testRegister() {
                $factory = new SkinFactory();
-               $factory->register( 'fallback', 'Fallback', function() {
+               $factory->register( 'fallback', 'Fallback', function () {
                        return new SkinFallback();
                } );
                $this->assertTrue( true ); // No exception thrown
index 1f1d750..3be9f2c 100644 (file)
@@ -18,7 +18,8 @@ class SpecialSearchTest extends MediaWikiTestCase {
         * @param array $userOptions User options to test with. For example:
         *   array('searchNs5' => 1 );. Null to use default options.
         * @param string $expectedProfile An expected search profile name
-        * @param array $expectedNs Expected namespaces
+        * @param array $expectedNS Expected namespaces
+        * @param string $message
         */
        public function testProfileAndNamespaceLoading( $requested, $userOptions,
                $expectedProfile, $expectedNS, $message = 'Profile name and namespaces mismatches!'
@@ -96,6 +97,7 @@ class SpecialSearchTest extends MediaWikiTestCase {
        /**
         * Helper to create a new User object with given options
         * User remains anonymous though
+        * @param array|null $opt
         */
        function newUserWithSearchNS( $opt = null ) {
                $u = User::newFromId( 0 );
index dad30b7..45d5ea8 100644 (file)
@@ -30,7 +30,7 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
         *
         * @param Page $page Page to add the revision to
         * @param string $text Revisions text
-        * @param string $text Revisions summare
+        * @param string $summary Revisions summare
         *
         * @throws MWException
         */
@@ -181,7 +181,7 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
         * Asserts that the xml reader is at the final closing tag of an xml file and
         * closes the reader.
         *
-        * @param string $tag (optional) the name of the final tag
+        * @param string $name (optional) the name of the final tag
         *   (e.g.: "mediawiki" for </mediawiki>)
         */
        protected function assertDumpEnd( $name = "mediawiki" ) {
@@ -304,9 +304,9 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
         * @param string $text_sha1 The base36 SHA-1 of the revision's text
         * @param string|bool $text (optional) The revision's string, or false to check for a
         *            revision stub
+        * @param int|bool $parentid (optional) id of the parent revision
         * @param string $model The expected content model id (default: CONTENT_MODEL_WIKITEXT)
         * @param string $format The expected format model id (default: CONTENT_FORMAT_WIKITEXT)
-        * @param int|bool $parentid (optional) id of the parent revision
         */
        protected function assertRevision( $id, $summary, $text_id, $text_bytes,
                $text_sha1, $text = false, $parentid = false,
index 1ad4656..b2141d3 100644 (file)
@@ -100,7 +100,7 @@ class FetchTextTest extends MediaWikiTestCase {
         *
         * @param WikiPage $page The page to add the revision to
         * @param string $text The revisions text
-        * @param string $text The revisions summare
+        * @param string $summary The revisions summare
         *
         * @throws MWException
         */
index b2f7fac..e0a72fd 100644 (file)
@@ -35,6 +35,13 @@ class MockImageHandler {
         * a thumbnail at all. That is merely returning a ThumbnailImage that
         * will be consumed by the unit test.  There is no need to create a real
         * thumbnail on the filesystem.
+        * @param ImageHandler $that
+        * @param File $image
+        * @param string $dstPath
+        * @param string $dstUrl
+        * @param array $params
+        * @param int $flags
+        * @return ThumbnailImage
         */
        static function doFakeTransform( $that, $image, $dstPath, $dstUrl, $params, $flags = 0 ) {
                # Example of what we receive:
index 461ab87..61ebbf8 100644 (file)
@@ -65,7 +65,7 @@ require __DIR__ . '/../../../maintenance/Maintenance.php';
 
 class GenerateJqueryMsgData extends Maintenance {
 
-       static $keyToTestArgs = array(
+       public static $keyToTestArgs = array(
                'undelete_short' => array(
                        array( 0 ),
                        array( 1 ),
index 2fd3ce9..92dad9f 100644 (file)
                );
                $table.tablesorter();
                assert.equal( $table.find( '#A2' ).prop( 'headerIndex' ),
-                       0,
+                       undefined,
                        'A2 should not be a sort header'
                );
                assert.equal( $table.find( '#C1' ).prop( 'headerIndex' ),
-                       1,
-                       'C1 should be a sort header, but will sort the wrong column'
+                       2,
+                       'C1 should be a sort header'
+               );
+       } );
+
+       // bug 53527
+       QUnit.test( 'td cells in thead should not be taken into account for longest row calculation', 2, function ( assert ) {
+               var $table = $(
+                       '<table class="sortable">' +
+                               '<thead>' +
+                               '<tr><th id="A1">A1</th><th>B1</th><td id="C1">C1</td></tr>' +
+                               '<tr><th id="A2">A2</th><th>B2</th><th id="C2">C2</th></tr>' +
+                               '</thead>' +
+                               '</table>'
+               );
+               $table.tablesorter();
+               assert.equal( $table.find( '#C2' ).prop( 'headerIndex' ),
+                       2,
+                       'C2 should be a sort header'
+               );
+               assert.equal( $table.find( '#C1' ).prop( 'headerIndex' ),
+                       undefined,
+                       'C1 should not be a sort header'
                );
        } );
 
index 717c5f3..2f5fa9e 100644 (file)
@@ -51,8 +51,8 @@ interface ITestRecorder {
 }
 
 class TestRecorder implements ITestRecorder {
-       var $parent;
-       var $term;
+       public $parent;
+       public $term;
 
        function __construct( $parent ) {
                $this->parent = $parent;
@@ -295,7 +295,7 @@ class DbTestPreviewer extends TestRecorder {
 }
 
 class DbTestRecorder extends DbTestPreviewer {
-       var $version;
+       public $version;
 
        /**
         * Set up result recording; insert a record for the run with the date
@@ -364,6 +364,10 @@ class TestFileIterator implements Iterator {
        private $sectionData = array();
        private $lineNum;
        private $eof;
+       # Create a fake parser tests which never run anything unless
+       # asked to do so. This will avoid running hooks for a disabled test
+       private $delayedParserTest;
+       private $nextSubTest = 0;
 
        function __construct( $file, $parserTest ) {
                $this->file = $file;
@@ -374,6 +378,7 @@ class TestFileIterator implements Iterator {
                }
 
                $this->parserTest = $parserTest;
+               $this->delayedParserTest = new DelayedParserTest();
 
                $this->lineNum = $this->index = 0;
        }
@@ -412,12 +417,71 @@ class TestFileIterator implements Iterator {
                return $this->eof != true;
        }
 
+       function setupCurrentTest() {
+               // "input" and "result" are old section names allowed
+               // for backwards-compatibility.
+               $input = $this->checkSection( array( 'wikitext', 'input' ), false );
+               $result = $this->checkSection( array( 'html/php', 'html/*', 'html', 'result' ), false );
+               // some tests have "with tidy" and "without tidy" variants
+               $tidy = $this->checkSection( array( 'html/php+tidy', 'html+tidy'), false );
+               if ( $tidy != false ) {
+                       if ( $this->nextSubTest == 0 ) {
+                               if ( $result != false ) {
+                                       $this->nextSubTest = 1; // rerun non-tidy variant later
+                               }
+                               $result = $tidy;
+                       } else {
+                               $this->nextSubTest = 0; // go on to next test after this
+                               $tidy = false;
+                       }
+               }
+
+               if ( !isset( $this->sectionData['options'] ) ) {
+                       $this->sectionData['options'] = '';
+               }
+
+               if ( !isset( $this->sectionData['config'] ) ) {
+                       $this->sectionData['config'] = '';
+               }
+
+               $isDisabled = preg_match( '/\\bdisabled\\b/i', $this->sectionData['options'] ) && !$this->parserTest->runDisabled;
+               $isParsoidOnly = preg_match( '/\\bparsoid\\b/i', $this->sectionData['options'] ) && $result == 'html' && !$this->parserTest->runParsoid;
+               $isFiltered = !preg_match( "/" . $this->parserTest->regex . "/i", $this->sectionData['test'] );
+               if ( $input == false || $result == false || $isDisabled || $isParsoidOnly || $isFiltered ) {
+                       # disabled test
+                       return false;
+               }
+
+               # We are really going to run the test, run pending hooks and hooks function
+               wfDebug( __METHOD__ . " unleashing delayed test for: {$this->sectionData['test']}" );
+               $hooksResult = $this->delayedParserTest->unleash( $this->parserTest );
+               if ( !$hooksResult ) {
+                       # Some hook reported an issue. Abort.
+                       throw new MWException( "Problem running hook" );
+               }
+
+               $this->test = array(
+                       'test' => ParserTest::chomp( $this->sectionData['test'] ),
+                       'input' => ParserTest::chomp( $this->sectionData[$input] ),
+                       'result' => ParserTest::chomp( $this->sectionData[$result] ),
+                       'options' => ParserTest::chomp( $this->sectionData['options'] ),
+                       'config' => ParserTest::chomp( $this->sectionData['config'] ),
+               );
+               if ( $tidy != false ) {
+                       $this->test['options'] .= " tidy";
+               }
+               return true;
+       }
+
        function readNextTest() {
-               $this->clearSection();
+               # Run additional subtests of previous test
+               while ( $this->nextSubTest > 0 )
+                       if ( $this->setupCurrentTest() )
+                               return true;
 
-               # Create a fake parser tests which never run anything unless
-               # asked to do so. This will avoid running hooks for a disabled test
-               $delayedParserTest = new DelayedParserTest();
+               $this->clearSection();
+               # Reset hooks for the delayed test object
+               $this->delayedParserTest->reset();
 
                while ( false !== ( $line = fgets( $this->fh ) ) ) {
                        $this->lineNum++;
@@ -446,7 +510,7 @@ class TestFileIterator implements Iterator {
                                                $line = trim( $line );
 
                                                if ( $line ) {
-                                                       $delayedParserTest->requireHook( $line );
+                                                       $this->delayedParserTest->requireHook( $line );
                                                }
                                        }
 
@@ -462,7 +526,7 @@ class TestFileIterator implements Iterator {
                                                $line = trim( $line );
 
                                                if ( $line ) {
-                                                       $delayedParserTest->requireFunctionHook( $line );
+                                                       $this->delayedParserTest->requireFunctionHook( $line );
                                                }
                                        }
 
@@ -489,52 +553,14 @@ class TestFileIterator implements Iterator {
 
                                if ( $this->section == 'end' ) {
                                        $this->checkSection( 'test' );
-                                       // "input" and "result" are old section names allowed
-                                       // for backwards-compatibility.
-                                       $input = $this->checkSection( array( 'wikitext', 'input' ), false );
-                                       $result = $this->checkSection( array( 'html/php', 'html/*', 'html', 'result' ), false );
-
-                                       if ( !isset( $this->sectionData['options'] ) ) {
-                                               $this->sectionData['options'] = '';
-                                       }
-
-                                       if ( !isset( $this->sectionData['config'] ) ) {
-                                               $this->sectionData['config'] = '';
-                                       }
-
-                                       if ( $input == false || $result == false ||
-                                               ( ( preg_match( '/\\bdisabled\\b/i', $this->sectionData['options'] )
-                                                       && !$this->parserTest->runDisabled )
-                                               || ( preg_match( '/\\bparsoid\\b/i', $this->sectionData['options'] )
-                                                       && $result != 'html/php' && !$this->parserTest->runParsoid )
-                                               || !preg_match( "/" . $this->parserTest->regex . "/i", $this->sectionData['test'] ) )
-                                       ) {
-                                               # disabled test
-                                               $this->clearSection();
-
-                                               # Forget any pending hooks call since test is disabled
-                                               $delayedParserTest->reset();
-
-                                               continue;
-                                       }
-
-                                       # We are really going to run the test, run pending hooks and hooks function
-                                       wfDebug( __METHOD__ . " unleashing delayed test for: {$this->sectionData['test']}" );
-                                       $hooksResult = $delayedParserTest->unleash( $this->parserTest );
-                                       if ( !$hooksResult ) {
-                                               # Some hook reported an issue. Abort.
-                                               return false;
-                                       }
-
-                                       $this->test = array(
-                                               'test' => ParserTest::chomp( $this->sectionData['test'] ),
-                                               'input' => ParserTest::chomp( $this->sectionData[$input] ),
-                                               'result' => ParserTest::chomp( $this->sectionData[$result] ),
-                                               'options' => ParserTest::chomp( $this->sectionData['options'] ),
-                                               'config' => ParserTest::chomp( $this->sectionData['config'] ),
-                                       );
-
-                                       return true;
+                                       do {
+                                               if ( $this->setupCurrentTest() )
+                                                       return true;
+                                       } while ( $this->nextSubTest > 0 );
+                                       # go on to next test (since this was disabled)
+                                       $this->clearSection();
+                                       $this->delayedParserTest->reset();
+                                       continue;
                                }
 
                                if ( isset( $this->sectionData[$this->section] ) ) {
@@ -570,7 +596,7 @@ class TestFileIterator implements Iterator {
         * Throw an exception if it is not set, referencing current section
         * and adding the current file name and line number
         *
-        * @param string|array $token Expected token(s) that should have been
+        * @param string|array $tokens Expected token(s) that should have been
         * mentioned before closing this section
         * @param bool $fatal True iff an exception should be thrown if
         * the section is not found.
@@ -702,7 +728,7 @@ class DelayedParserTest {
        /**
         * Similar to ParserTest object but does not run anything
         * Use unleash() to really execute the hook function
-        * @param string $fnHook
+        * @param string $hook
         */
        public function requireTransparentHook( $hook ) {
                $this->transparentHooks[] = $hook;
@@ -732,7 +758,7 @@ class DjVuSupport {
        }
 
        /**
-        * Returns if the DjVu tools are usable
+        * Returns true if the DjVu tools are usable
         *
         * @return bool
         */
@@ -745,3 +771,43 @@ class DjVuSupport {
                        && is_executable( $wgDjvuTxt );
        }
 }
+
+/**
+ * Initialize and detect the tidy support
+ */
+class TidySupport {
+       private $internalTidy;
+       private $externalTidy;
+
+       /**
+        * Determine if there is a usable tidy.
+        */
+       public function __construct() {
+               global $wgTidyBin;
+
+               $this->internalTidy = extension_loaded( 'tidy' ) &&
+                       class_exists( 'tidy' );
+
+               $this->externalTidy = is_executable( $wgTidyBin ) ||
+                       Installer::locateExecutableInDefaultPaths( array( $wgTidyBin ) )
+                       !== false;
+       }
+
+       /**
+        * Returns true if we should use internal tidy.
+        *
+        * @return bool
+        */
+       public function isInternal() {
+               return $this->internalTidy;
+       }
+
+       /**
+        * Returns true if tidy is usable
+        *
+        * @return bool
+        */
+       public function isEnabled() {
+               return $this->internalTidy || $this->externalTidy;
+       }
+}
index efaa65b..d8ed246 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -553,7 +553,7 @@ function wfExtractThumbRequestInfo( $thumbRel ) {
  * file handler.
  *
  * @param File $file File object for file in question
- * @param array $param Array of parameters so far
+ * @param array $params Array of parameters so far
  * @return array Parameters array with more parameters
  */
 function wfExtractThumbParams( $file, $params ) {